Docker 拉镜像超时/失败?
pull 超时/404 多是网络到 registry 的链路问题。本文给出换 registry 可达性验证、重试策略、本地离线导入三条路线。
简短答案
pull 超时分三类根因:到 registry 的链路被限/断、registry 本身在限流、本地磁盘满。排查顺序:先 curl 验证 registry 可达 → 重试并看是否只超时于大包 → df -h /var/lib/docker 排除磁盘满。三条路线:重试 + 断点、切 registry 镜像、离线 docker save/load。
现象对照
| 现象 | 判断 |
|---|---|
| 小包正常、大包反复断 | 链路超时或本地带宽限 |
| 403 / 限流 | registry 侧对该 IP 限流 |
no space left |
/var/lib/docker 所在分区满 |
排查步骤
curl -sI https://registry.example.com/v2/ | head -1 # registry 可达性
df -h /var/lib/docker
docker pull <image>:<tag> # 重试,大包用 --progress 观察
离线环境:一台能上网的机 docker save 导出镜像 tar,传到目标机 docker load(参考 Ubuntu 26.04 服务器版 的部署基线)。registry 配置与网络说明见 Ubuntu 发行条目;Debian 同机制。
操作小结
- 先 curl 验证 registry 本身可达,再谈镜像
- 大包超时优先查链路,其次查本地磁盘
- 离线场景走 save/load,不硬拉
- 改完 registry 配置必重启 docker 服务验证