新闻详情

新闻详情

首页 / 资讯中心 / 详情

Docker 镜像拉取超时、失败?国内镜像源配置完整解决方案(避坑)

发布时间:2026/9/29 1:49:56来源:尧图网络
Docker 镜像拉取超时、失败?国内镜像源配置完整解决方案(避坑)
上周在一台新装的 CentOS 7 服务器上部署 nginxdocker pull nginx 敲下去卡在 Pulling fs layer 二十多分钟没动静最后超时报错。查了一圈发现这不是个例——2024 年下半年之后 Docker 官方在中国大陆的 CDN 节点陆续下线很多以前教程里推荐的加速器USTC、163、阿里云公共加速等要么停了要么需要登录拿专属地址网上不少文章还在贴老配置抄过来根本不生效。这篇记录一下我最后跑通的配置以及中间踩到的几个坑。环境项目版本OSCentOS 7.9 / Ubuntu 22.04两台都测过Docker Engine24.0.7网络阿里云 ECS无公网代理Windows/Mac 用 Docker Desktop 的同学配置方式略有不同文章最后一节单独讲。报错长什么样$ docker pull nginx Using default tag: latest latest: Pulling from library/nginx docker: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).或者更常见的是——不报错就是慢。看 docker pull 输出停在某一层速度几十 KB/s 甚至 0 B/s最后卡死。为什么会这样Docker 默认从 registry-1.docker.io 拉镜像这个域名在国内解析出来的 IP 长期不稳定TCP 握手丢包率高。registry-mirrors 配置的作用就是让 Docker 客户端在拉 Docker Hub 镜像时先走你配置的国内镜像地址走不通再回退到官方源。要注意两点registry-mirrors只对 Docker Hubdocker.io生效对 gcr.io、quay.io、k8s.gcr.io、ghcr.io 这些第三方仓库不起作用。你要拉 k8s.gcr.io/pause:3.9 得单独想办法比如手动 retag 或用 imagePullSecrets。镜像源本质是缓存代理热门镜像速度快冷门镜像可能触发回源回源失败照样拉不下来这不是配置问题。完整配置步骤1. 编辑 daemon.jsonsudo mkdir -p /etc/docker sudo vim /etc/docker/daemon.json写入{ registry-mirrors: [ https://docker.m.daocloud.io, https://dockerproxy.com, https://docker.1panel.live, https://hub.rat.dev ], log-driver: json-file, log-opts: { max-size: 100m, max-file: 3 } }配置多个地址是有意义的Docker 会按顺序尝试前一个失败自动切下一个。顺手把日志滚动也配上不然 /var/lib/docker/containers/ 迟早撑爆磁盘这是另一个坑见文末。注上面四个地址是我 2026 年 9 月实测可用的第三方镜像站随时可能关停或改域名用之前建议先 curl 一下for url in https://docker.m.daocloud.io https://dockerproxy.com https://docker.1panel.live https://hub.rat.dev; do echo -n $url - curl -sS -o /dev/null -w HTTP %{http_code} %{time_total}s\n --max-time 5 $url/v2/ done返回 HTTP 200 或 HTTP 401 都算活着401 是需要认证正常000 或超时就是挂了。2. 重载并重启sudo systemctl daemon-reload sudo systemctl restart dockerdaemon-reload 是让 systemd 重新读 unit 文件restart docker 才是让 Docker 重新读 daemon.json。两个都要执行只跑后一个有时候配置不生效。3. 验证配置生效$ docker info | grep -A 5 Registry Mirrors Registry Mirrors: https://docker.m.daocloud.io/ https://dockerproxy.com/ https://docker.1panel.live/ https://hub.rat.dev/看到列表就 OK。如果 docker info 里没有 Registry Mirrors 这一节说明 daemon.json 格式错了多半是漏了逗号或者写了注释JSON 不支持注释。可以用 jq . /etc/docker/daemon.json 或者 python3 -m json.tool /etc/docker/daemon.json 校验一下语法。4. 拉一个镜像试试$ time docker pull nginx latest: Pulling from library/nginx a480a496ba95: Pull complete ... Digest: sha256:... Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest real 0m12.341s12 秒拉完正常水平。如果还是几十分钟不动往下看排错。常见问题配了以后还是慢/失败多半是所配镜像站当前不通。用上面的 curl 脚本挨个测把返回 000 或超时的地址从数组里删掉。也可以去 GitHub 搜 docker mirror 2026 找当下社区维护的可用列表。docker: Error response from daemon: Get https://xxx/v2/: x509: certificate signed by unknown authority镜像站用了自签证书。生产环境不建议加 insecure-registries直接换一家。docker pull 报 unauthorized: authentication required说明这个镜像站需要账号比如阿里云的公共加速器现在要登录容器镜像服务拿专属地址。要么注册拿地址要么换不需要账号的。systemctl restart docker 之后 docker 起不来journalctl -u docker -n 50 看日志90% 是 daemon.json 语法错误改回来即可。拉私有仓库镜像如 registry.cn-hangzhou.aliyuncs.com/xxx没走加速器这是正常的registry-mirrors 只管 Docker Hub。私有仓库该配 docker login 就配该走 VPN 就走。日志文件把磁盘写满了跟加速器无关但一起改了省事。上面 daemon.json 里的 log-opts 就是干这个的单文件 100MB保留 3 份滚动。改完 systemctl restart docker 生效已有容器的日志不会追溯清理需要 truncate -s 0 /var/lib/docker/containers/*/*-json.log。Windows / Mac Docker DesktopDocker Desktop 不用改 /etc/docker/daemon.json路径不一样打开 Docker Desktop → 右上角齿轮Settings→Docker Engine标签在 JSON 编辑器里加同样的 registry-mirrors 字段点Apply Restart命令行党也可以直接改文件Windows%USERPROFILE%\.docker\daemon.json旧版本或从 Settings UI 改新版本推荐Mac~/.docker/daemon.json改完在 PowerShell / Terminal 里 docker info 验证一下逻辑和 Linux 一样。WSL2 后端要注意Docker Desktop 用 WSL2 时容器实际跑在 WSL 里的 dockerd配置还是从 Desktop UI 下发不要去 WSL 里改 /etc/docker/daemon.json改了会被覆盖。小结registry-mirrors 本身不复杂坑主要在镜像源可用性时效短、只覆盖 Docker Hub、JSON 语法要求严格这三件事上。写这篇的目的不是给一份永久可用的配置——那种东西不存在——而是给一套自己判断当前哪家能用、出问题怎么排查的方法。如果你现在正在被 docker pull 卡住建议先跑上面那段 curl 循环五分钟就能定位到是配置错了还是镜像源挂了。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

三元量化模型接入vLLM:权重逆向、对账与CUDA Kernel优化全记录 2026/9/29 10:17:54

三元量化模型接入vLLM:权重逆向、对账与CUDA Kernel优化全记录

上个月接了个活儿,要把一个权重全部收敛到 {-1, 0, 1} 的三元量化模型塞进 vLLM 里跑起来。拿到手才发现,事情远没有“改个 dtype、换个 weight_loader”那么简单:checkpoint 里的权重是 2bit 打包的紧凑格式,vLLM 原生算子完全不…

阅读更多 →
2026年免费AI智能体实测:OpenCode+Ollama本地跑通TaoToken统一Key配置 2026/9/29 10:17:54

2026年免费AI智能体实测:OpenCode+Ollama本地跑通TaoToken统一Key配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
基于Spring Boot+大数据:交叉路口行人非机动车流量调查统计分析系统实现 2026/9/29 10:17:47

基于Spring Boot+大数据:交叉路口行人非机动车流量调查统计分析系统实现

前不久一个学弟拿着“基于Spring Boot大数据交叉路口行人非机动车流量调查统计分析系统”这个题目来找我,说自己翻遍了网上下载的代码,要么版本太老跑不起来,要么只有几个孤零零的Controller,连统计口径都讲不清楚。这个题目乍一看…

阅读更多 →
基于ensp的OSPF综合实验:区域规划、BGP联动与排错实战 2026/9/29 10:17:40

基于ensp的OSPF综合实验:区域规划、BGP联动与排错实战

1. 实验设计与整体拓扑规划先说个题外话,标题里写“OSOF综合实验”我盯着看了好半天,其实跑题了吧,正解应该是 OSPF。不过这种小笔误还真挺常见,因为很多人敲命令时也容易把ospf敲成osof,看着像、读着顺,一…

阅读更多 →
AnythingLLM + Ollama:本地优先的AI智能体平台落地实践 2026/9/29 10:17:39

AnythingLLM + Ollama:本地优先的AI智能体平台落地实践

本地跑大模型这件事,从2023年折腾到现在,我最大的感受是:模型本身早就不是瓶颈了,真正让人头疼的是"怎么把模型、文档、工具、权限、界面这几样东西捏成一个能天天用的东西"。你可能已经在本地用 Ollama 拉了一堆模型&a…

阅读更多 →
DeepAgent vs Claude Code 深度研究能力对比:用 TaoToken 统一 Key 跑通 MCP 与子 Agent 配置 2026/9/29 10:17:33

DeepAgent vs Claude Code 深度研究能力对比:用 TaoToken 统一 Key 跑通 MCP 与子 Agent 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉