Docker Hub 上的镜像怎么总是拉取失败?

南宫倩利 阅读 16

我本地用 Docker 拉取公开镜像老是超时或者报错,比如执行 docker pull nginx 经常卡住,有时候还提示“net/http: request canceled”。

试过换国内镜像源,也重启过 Docker 服务,但问题还是时不时出现。是我网络的问题,还是 Docker Hub 本身不稳定?

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
南宫俊轶
说实话,这事儿跟 Docker Hub 本身关系不大,主要是国内网络环境的问题。Docker Hub 服务器在国外,国内访问本来就不稳定,加上前段时间一堆国内镜像源陆陆续续停用了,现在确实挺麻烦的。

先说几个能用的解决方案。

配置可用的镜像加速器。虽然很多之前的镜像源已经挂了,但还有一些能用的。修改 Docker 的配置文件,Linux 下是 /etc/docker/daemon.json,Windows/Mac 在 Docker Desktop 设置里改。加入这些镜像源试试:

{
"registry-mirrors": [
"https://docker.1panel.live",
"https://docker.m.daocloud.io",
"https://hub.rat.dev"
]
}


改完之后重启 Docker 服务让配置生效。

如果镜像加速器还是不行,后端处理这类问题最稳妥的方式是配置代理。在 Docker Desktop 里找到 Proxies 设置,填上你的代理地址。Linux 服务器的话,创建 systemd 配置:

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

sudo systemctl daemon-reload
sudo systemctl restart docker


还有一个备选方案是直接用国内云厂商的容器镜像服务。阿里云、腾讯云都有镜像加速器,登录控制台找容器镜像服务,里面会给你一个专属的加速地址,比自己找的公共镜像源稳定不少。

最后实在不行就手动导出导入。找台能拉取镜像的服务器,用 docker save -o nginx.tar nginx:latest 导出,传到本地后用 docker load -i nginx.tar 导入。虽然麻烦点,但绝对能成。

建议优先试镜像加速器,不行就上代理,这两个方案解决大部分场景足够了。
点赞 1
2026-03-02 16:02