Docker 构建时网络超时拉不到镜像?一些排查和配置记录

最近在服务器上 docker build 的时候一直报 failed to fetch anonymous token,偶尔直接 network timeout,镜像死活拉不下来。查了一圈,记录一下排查过程和最终的配置,以后自己也能翻。

问题出在从 Docker Hub 拉镜像这一步,要么 DNS 解析不到 registry-1.docker.io,要么网络压根不通。先做几个基础检查。

复制代码
ping 8.8.8.8
ping google.com
nslookup registry-1.docker.io

ping 8.8.8.8 如果都不通,那先看看虚拟机的网络模式,NAT 模式下宿主机必须能正常上网,桥接的话检查 IP 配置。一般云服务器不太会有这个问题,本地虚拟机踩坑的多。

DNS 解析失败就更常见了。很多人直接去改 /etc/resolv.conf 加 nameserver 8.8.8.8,但是这个文件重启就会被覆盖,临时用可以,长期还得配到 Docker 的 daemon.json 里。在 /etc/docker/daemon.json 加上 dns 字段:

复制代码
{
  "dns": ["8.8.8.8", "114.114.114.114"]
}

然后重启 docker:sudo systemctl restart docker。这样容器内的 DNS 也会用这个。

网络能通但拉镜像还是慢或者 403,那大概率是没配镜像加速。国内访问 Docker Hub 很不稳定,需要在 daemon.json 里设置 registry-mirrors。我用的 daocloud 和网易的源,任选一个或都加上:

复制代码
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com"
  ]
}

如果之前已经有 dns 配置,就合并到一起。配完重启 docker,用 docker info | grep Mirrors 看下有没有生效。

有些环境需要走代理,比如公司内网。那就给 Docker 服务配代理,创建 /etc/systemd/system/docker.service.d/http-proxy.conf:

复制代码
[Service]
Environment="HTTP_PROXY=http://<代理IP>:<端口>"
Environment="HTTPS_PROXY=http://<代理IP>:<端口>"

替换成自己的代理地址,然后 sudo systemctl daemon-reload && sudo systemctl restart docker

防火墙也可能拦了。本机用 ufw 或 firewalld 的可以直接关掉测试:

复制代码
sudo ufw disable          # Ubuntu
sudo systemctl stop firewalld  # CentOS

如果是云服务器,别忘了安全组出方向要放行 443 端口,目标 0.0.0.0/0,不然访问 registry-1.docker.io 会被拦截。

来此加密实现了一套完整的证书生命周期管理方案:从申请、验证、签发、部署,到到期提醒、自动续期,全流程自动化。你只需关注业务本身,证书管理交给来此加密,彻底消除运维盲点。

一套组合拳下来,我一般会这样一口气配好 DNS 和镜像加速:

复制代码
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
sudo tee /etc/docker/daemon.json <<EOF
{
  "dns": ["8.8.8.8"],
  "registry-mirrors": ["https://docker.m.daocloud.io"]
}
EOF
sudo systemctl restart docker

然后 docker pull nginx 测试一下,能拉下来基本就没问题了,再重新 build 你的镜像。

最后整理几个常见现象的对应关系,排查时心里有数:

报域名解析失败 → 去检查 /etc/resolv.conf 或 Docker 的 dns 配置。

连接超时 → 可能是网络不通或防火墙,先 ping 再查安全组。

返回 403 Forbidden → 八成没配镜像加速,加上 registry-mirrors。

代理认证失败 → 看看 http-proxy.conf 里的地址和端口对不对。

这些步骤基本能解决大多数构建时拉镜像的网络问题。如果还不行,可能得考虑用离线镜像或者搭个本地 registry,那就是另外的事了。

相关推荐
取谖慕12.17 小时前
Docker容器从入门到精通
docker·容器·eureka
人间凡尔赛19 小时前
K8s 十年之变:从 Cloud Native 到 AI Native,2026 年后端架构的范式革命
后端·云原生·架构
名字还没想好☜20 小时前
Kubernetes CrashLoopBackOff 排查全流程:从 describe 到日志到 exit code
运维·docker·云原生·容器·kubernetes
Cloud云卷云舒21 小时前
AI Agent记忆系统:分层记忆体系的技术架构与实践
云原生·ai-native·haishandb
Ulyanov21 小时前
Python雷达电子对抗仿真引擎(一):打破单体瓶颈,构建微服务与ECS架构的顶层设计
开发语言·python·微服务·云原生·架构·雷达电子对抗
spider_xcxc1 天前
基于项目实际 k8s/ 目录 YAML 文件的完整学习指南。
云原生·容器·kubernetes
张忠琳1 天前
【NVIDIA】 NVIDIA Container Toolkit v1.19.1 — OCI 模块超深度分析之三
云原生·容器·架构·kubernetes·nvidia
阿里云云原生2 天前
让 AI Agent 看见正在发生的业务,阿里云 EventHouse 正式商业化
云原生
AOwhisky2 天前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
微三云 - 廖会灵 (私域系统开发)2 天前
电商系统从单体到微服务拆分实践:拆什么、怎么拆、拆完后怎么办
微服务·云原生·架构