Docker构建node:14镜像失败:无法获取匿名令牌求助
解决Docker构建时拉取node:14镜像超时问题
问题分析
从错误日志可见,Docker无法连接auth.docker.io获取拉取镜像的匿名令牌,出现TCP连接超时。这属于网络层面问题,大概率和你之前操作winnat服务导致的网络配置异常有关,或是默认Docker Hub镜像源在国内访问稳定性不足。
解决方案
1. 切换Docker镜像源到国内加速地址
修改Docker镜像源配置,用国内镜像站替代默认的Docker Hub:
- 打开Docker Desktop,进入Settings → Docker Engine
- 在配置JSON中添加
registry-mirrors字段,示例:{ "registry-mirrors": [ "https://registry.docker-cn.com", "https://hub-mirror.c.163.com" ] } - 点击Apply & Restart重启Docker生效。
2. 重置Docker网络并重启服务
执行命令清理Docker无效网络,重置网络配置:
# 清理无用的Docker网络 docker network prune -f # 重启Docker服务 net stop docker net start docker
3. 修复winnat服务状态
winnat服务异常可能导致网络端口占用或转发问题,重新确认其状态:
# 查看winnat服务状态 sc query winnat # 如果状态不是RUNNING,重新启动服务 net stop winnat net start winnat
4. 手动拉取镜像后再构建
先手动拉取node:14镜像,避免构建时重复发起远程请求:
docker pull node:14
拉取成功后再执行docker build .,此时Docker会直接使用本地已有的镜像。
5. 检查系统DNS设置
将Windows的DNS服务器改为公共DNS,比如:
- 8.8.8.8(Google公共DNS)
- 114.114.114.114(国内公共DNS)
避免DNS解析失败导致无法连接Docker Hub服务器。
内容的提问来源于stack exchange,提问作者sky
相关产品推荐
相关产品推荐

