阿里云 ECS 上 Docker Hub 拉取失败的处理记录
问题背景
在阿里云服务器上直接拉取 Docker Hub 镜像时,常见现象包括:
docker pull很慢- 拉取过程中超时
- 反复重试后仍然失败
- 某些镜像在本地网络正常,但在云服务器上无法稳定下载
这类问题很多时候不是 Docker 本身损坏,而是访问 Docker Hub 的链路较慢或不稳定。
阿里云官方给出的一个常见处理办法,是先为当前账号获取 ACR 镜像加速器地址,再把它配置到 Docker 或 Containerd 中。
官方文档:
先说结论
如果只是想先把机器拉起来、让 docker pull 别再卡死,最实用的做法是:
- 在阿里云容器镜像服务 ACR 控制台里获取你自己的镜像加速器地址
- 把这个地址写进 Docker 的
daemon.json - 重启 Docker
- 用
docker info和一次实际拉取确认是否生效
重要限制
阿里云官方文档里有一个必须注意的点:
- ACR 镜像加速目前已经停止同步最新镜像
- 如果你依赖
latest标签,拉到的镜像不一定是最新版本 - 如果某个镜像始终拉不到,或者你明确需要最新版本,这个方案未必可靠
官方给出的替代方向主要有两个:
- 在 ACR 中订阅海外源镜像
- 使用全球加速 GA 直接加速海外源访问
所以这篇记录更适合下面这种场景:
- 个人开发
- 临时排障
- 快速恢复 Docker Hub 拉取能力
如果是生产环境,最好不要把对 Docker Hub 的访问稳定性完全寄托在这个方案上。