Docker 拉取镜像超时/连接失败问题完整解决方案

适用场景

执行 docker pulldocker build 时遇到以下类似错误:

  • i/o timeout
  • connection reset by peer
  • no such host
  • pull access denied
  • failed to resolve source metadata

根本原因

在中国大陆,由于网络环境限制,直接访问 Docker Hub(registry-1.docker.io)常常会出现连接超时或拒绝访问的问题。

✅ 最终有效方案(已验证)

使用当前可用的 Docker 镜像加速器,替换默认的 Docker Hub 源。

操作步骤

1. 创建/编辑 Docker 配置文件
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json
2. 写入以下配置内容
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.xuanyuan.me",
    "https://docker.1ms.run"
  ]
}

说明:以上三个地址为 2026 年实测可用的公共镜像加速器,无需登录、免费使用。

3. 重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
4. 验证配置是否生效
sudo docker info | grep -A 5 "Registry Mirrors"

如果看到您配置的镜像地址,说明配置成功。

5. 测试拉取
sudo docker pull python:3.13-slim

如果能正常下载(显示进度条),问题即解决。

常见问题 FAQ

Q1: 为什么浏览器访问这些镜像地址打不开?

A: 这些地址是 Docker API 端点,不是网页,只能被 Docker 客户端访问。浏览器访问返回错误是正常现象,不代表地址无效。

Q2: 我试了文档中的地址还是不行怎么办?

A: 可以尝试以下备选方案:

方案一:配置 DNS

{
  "registry-mirrors": ["https://docker.m.daocloud.io"],
  "dns": ["8.8.8.8", "114.114.114.114"]
}

方案二:使用代理(如果有可用代理)

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
[Service]
Environment="HTTP_PROXY=http://你的代理地址:端口"
Environment="HTTPS_PROXY=http://你的代理地址:端口"
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Q3: 如何测试镜像加速器是否连通?

# 临时配置测试
# 或使用 curl 测试(返回 401 表示正常)
curl -v https://docker.m.daocloud.io/v2/

Q4: 拉取成功后镜像存在哪里?

镜像保存在 /var/lib/docker/ 目录下,可通过 docker images 查看。

Q5: 如何清理下载的镜像释放磁盘空间?

# 删除指定镜像
sudo docker rmi 镜像名:标签

# 清理构建缓存(重要)
sudo docker builder prune -a

# 一键清理所有未使用资源
sudo docker system prune -a

当前不可用/不推荐的镜像源

以下源已确认不稳定或已停止同步,不建议再使用:

镜像源状态
https://docker.mirrors.ustc.edu.cn不稳定
https://mirror.ccs.tencentyun.com不可用
https://registry.cn-hangzhou.aliyuncs.com需登录

验证成功的标志

执行 docker pull 后看到类似输出即为成功:

3.13-slim: Pulling from library/python
a0f9e14f2f7a: Pull complete
d4f6c9c3b2e1: Pull complete
...
Digest: sha256:xxx
Status: Downloaded newer image for python:3.13-slim
docker.io/library/python:3.13-slim

参考资料


更多推荐