Docker pull 镜像超时 connect connection timed out 怎么办

文章导读
Docker pull 出现 connect connection timed out 通常是因为本地网络无法稳定连接 Docker Hub 官方仓库。特别是在国内网络环境下,直接连接官方源极易超时。最有效的解决方案是配置 registry-mirrors 镜像加速,或在 daemon 中设置代理。
📋 目录
  1. 背景与现状
  2. 操作前备份
  3. 配置镜像加速
  4. 配置代理(备选)
  5. 生效与验证
  6. 故障排查与恢复
A A

Docker pull 出现 connect connection timed out 通常是因为本地网络无法稳定连接 Docker Hub 官方仓库。特别是在国内网络环境下,直接连接官方源极易超时。最有效的解决方案是配置 registry-mirrors 镜像加速,或在 daemon 中设置代理。

先说结论:多数情况是网络链路问题,优先检查 DNS 和镜像源配置,必要时通过 daemon 代理解决。

  • 先确认:本地能否解析 registry-1.docker.io 域名
  • 先处理:配置 daemon.json 添加镜像加速或代理地址(操作前务必备份)
  • 再验证:重启服务后执行 pull 命令观察日志

背景与现状

Docker 拉取镜像时需要连接官方仓库 registry-1.docker.io。如果本地 DNS 解析慢、网络链路拥塞或者防火墙拦截,就会建立连接超时。这不是 Docker 软件本身的故障,而是网络可达性问题。近期国内访问 Docker Hub 稳定性波动较大,公共镜像源可能随时不可用,建议优先使用云厂商提供的专属加速地址。

操作前备份

修改配置文件前务必备份,防止格式错误导致 Docker 服务无法启动。

Docker pull 镜像超时 connect connection timed out 怎么办
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak

如果服务启动失败,可通过 sudo cp /etc/docker/daemon.json.bak /etc/docker/daemon.json 快速恢复。

配置镜像加速

编辑 /etc/docker/daemon.json,添加 registry-mirrors 字段。由于公共镜像源稳定性不一,建议登录阿里云、腾讯云等容器控制台获取专属加速地址。

{
  "registry-mirrors": [
    "https://your-exclusive-id.mirror.aliyuncs.com"
  ]
}

如果没有该文件,新建即可;如果已有内容,注意 JSON 格式逗号不要遗漏。修改后建议校验 JSON 语法:

Docker pull 镜像超时 connect connection timed out 怎么办
python -m json.tool /etc/docker/daemon.json

若输出格式化后的 JSON 而无报错,说明语法正确。

配置代理(备选)

如果处于企业内网,需要走 HTTP 代理,创建或编辑 /etc/systemd/system/docker.service.d/http-proxy.conf

Docker pull 镜像超时 connect connection timed out 怎么办
[Service]
Environment="HTTP_PROXY=http://proxy-ip:port"
Environment="HTTPS_PROXY=https://proxy-ip:port"

生效与验证

配置修改后必须重载 systemd 并重启 docker 服务才能生效。

sudo systemctl daemon-reload
sudo systemctl restart docker

执行 docker info 查看 Registry Mirrors 字段是否包含你配置的地址。然后尝试拉取一个小镜像:

docker pull hello-world

观察输出日志,如果显示 Pulling from library/hello-world 且最终 Downloaded newer image,说明成功。

故障排查与恢复

  • JSON 格式错误:配置文件多一个逗号或少一个括号都会导致 docker 服务启动失败。若重启失败,立即还原备份文件。
  • 配置未重载:修改了 systemd 配置后忘记执行 daemon-reload,重启无效。
  • 镜像源失效:公共镜像源可能随时不可用,建议优先使用自己所属云厂商的内网源或专属加速地址。
  • 代理地址错误:代理配置中的 IP 和端口必须确保本地网络可通达。