Docker Hub 上的镜像怎么总是拉取失败? 南宫倩利 提问于 2026-03-02 15:40:18 阅读 35 工具 我本地用 Docker 拉取公开镜像老是超时或者报错,比如执行 docker pull nginx 经常卡住,有时候还提示“net/http: request canceled”。 试过换国内镜像源,也重启过 Docker 服务,但问题还是时不时出现。是我网络的问题,还是 Docker Hub 本身不稳定? 我来解答 赞 5 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 ❤瑞瑞 Lv1 问题是 Docker Hub 在国内访问本身就极慢,换镜像源没用的话,大概率是你配的镜像地址不对。 正确做法:创建或修改 /etc/docker/daemon.json(Windows 是 C:ProgramDatadockerconfigdaemon.json),改成这样: { "registry-mirrors": ["https://registry.docker-cn.com","https://mirror.ccs.tencentyun.com","https://docker.mirrors.ustc.edu.cn"] } 保存后执行 sudo systemctl daemon-reload && sudo systemctl restart docker 生效。腾讯云、阿里云都有免费的镜像加速器地址,去控制台申请一下替换进去更快。 回复 点赞 2026-03-13 23:27 南宫俊轶 Lv1 说实话,这事儿跟 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 导入。虽然麻烦点,但绝对能成。 建议优先试镜像加速器,不行就上代理,这两个方案解决大部分场景足够了。 回复 点赞 6 2026-03-02 16:02 加载更多 相关推荐 2 回答 84 浏览 Docker推送镜像到Docker Hub时提示‘UNAUTHORIZED’怎么办? 刚用docker build打包了项目镜像,执行docker push时一直报错: The push refers to repository [docker.io/myuser/myapp] den... 端木子瑄 工具 2026-02-03 19:43:30 1 回答 41 浏览 Docker推送镜像到私有Registry时认证失败怎么办? 我本地搭了个私有Docker Registry,用的是官方的registry:2镜像,也配了HTTPS。但当我执行docker push my-registry.local:5000/my-app的时... 奥翔 Dev 工具 2026-03-19 08:33:20 2 回答 78 浏览 Jenkins构建Docker镜像时CSS文件权限导致容器启动失败怎么办? 在Jenkins Pipeline中构建Docker镜像时,发现生成的镜像无法加载CSS样式,容器日志显示Permission denied错误。Dockerfile中已经用COPY styles.c... 东方世鹏 工具 2026-02-07 03:09:55 2 回答 38 浏览 Docker推送镜像到私有Registry时认证失败怎么办? 我在本地搭了个私有Docker Registry,用的是HTTP(没配HTTPS),也加了insecure-registries配置。但每次执行 docker push my-registry:500... 西门耘郗 工具 2026-03-20 18:29:21 2 回答 65 浏览 Jenkins 构建 Docker 镜像时无法访问本地 Node.js 脚本,怎么回事? 我在 Jenkins 的 pipeline 里用 Dockerfile 构建镜像,想在构建过程中运行一个本地的 Node.js 脚本来生成配置文件,但总是报错说找不到模块或者权限被拒绝。我已经把脚本和... Designer°沐语 工具 2026-03-15 22:55:22 2 回答 36 浏览 Docker推送镜像到私有Registry时认证失败怎么办? 我在本地搭了个私有Docker Registry,用docker push的时候一直报“unauthorized: authentication required”,明明已经用docker login... Tr° 春萍 工具 2026-03-01 01:56:22 2 回答 34 浏览 Docker部署Vue项目时镜像体积过大怎么优化? 用Docker部署Vue项目时,按照教程写了多阶段构建的Dockerfile,但生成的镜像还是有几百MB,明明生产构建后只有dist目录。我尝试过在第二阶段只COPY dist/*,但运行时提示ENO... 上官静依 工具 2026-02-16 23:23:27 2 回答 108 浏览 Docker私有仓库推送镜像时提示404仓库不存在怎么解决? 之前成功搭建了本地Docker私有仓库,但今天推送镜像时突然报错"The name ... refers to a repository but no tags are present on the ... Prog.玉泽 工具 2026-01-27 09:39:22 1 回答 36 浏览 Docker构建React镜像时为什么页面空白? 我用Docker打包一个React应用,本地npm start能正常跑,但build之后放进Nginx镜像里访问就是空白页,控制台也没报错,这到底啥情况? 我的组件代码很简单,就一个App.js: i... 梓希(打工版) 工具 2026-03-26 20:25:21 2 回答 42 浏览 Docker健康检查一直失败是怎么回事? 我在用 Docker 部署一个 Node.js 服务,配置了健康检查,但容器状态一直是 unhealthy。试过改端口、加延时,还是不行。 这是我的 Dockerfile 里的健康检查指令: HEAL... 沐语 Dev 工具 2026-03-25 21:44:20
正确做法:创建或修改 /etc/docker/daemon.json(Windows 是 C:ProgramDatadockerconfigdaemon.json),改成这样:
保存后执行
sudo systemctl daemon-reload && sudo systemctl restart docker生效。腾讯云、阿里云都有免费的镜像加速器地址,去控制台申请一下替换进去更快。先说几个能用的解决方案。
配置可用的镜像加速器。虽然很多之前的镜像源已经挂了,但还有一些能用的。修改 Docker 的配置文件,Linux 下是
/etc/docker/daemon.json,Windows/Mac 在 Docker Desktop 设置里改。加入这些镜像源试试:改完之后重启 Docker 服务让配置生效。
如果镜像加速器还是不行,后端处理这类问题最稳妥的方式是配置代理。在 Docker Desktop 里找到 Proxies 设置,填上你的代理地址。Linux 服务器的话,创建 systemd 配置:
还有一个备选方案是直接用国内云厂商的容器镜像服务。阿里云、腾讯云都有镜像加速器,登录控制台找容器镜像服务,里面会给你一个专属的加速地址,比自己找的公共镜像源稳定不少。
最后实在不行就手动导出导入。找台能拉取镜像的服务器,用
docker save -o nginx.tar nginx:latest导出,传到本地后用docker load -i nginx.tar导入。虽然麻烦点,但绝对能成。建议优先试镜像加速器,不行就上代理,这两个方案解决大部分场景足够了。