Ubuntu使用阿里云加速docker pull

使用 Docker 时需要首先下载一个官方镜像,例如 mysql、wordpress。然而由于网络原因,下载一个 Docker 官方镜像可能会需要很长的时间,甚至下载失败。为此,阿里云容器镜像服务提供了官方的镜像站点,从而加速官方镜像的下载。

登陆阿里云容器镜像服务

阿里云容器镜像服务

由上图可以看到,阿里给我们分配的专享加速域名。

配置docker源

针对Docker客户端版本大于 1.10.0 的用户

可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

不过默认没有这个文件的,所以我们需要新建一个

新建daemon.json

sudo mkdir -p /etc/docker

sudo touch /etc/docker/daemon.json

设置源地址

{
    "registry-mirrors": ["<your accelerate address>"]
}

重启生效

sudo systemctl daemon-reload

sudo systemctl restart docker

Ubuntu使用阿里云加速docker pull

大功吿成!!

配置后的验证和排错

重启 Docker 后执行 docker info,在输出中查找 Registry Mirrors。如果没有出现刚填入的地址,说明问题还在配置文件、JSON 语法或 Docker 实际读取的目录上,不要只用 docker pull 的速度猜测是否生效。

daemon.json 是一个完整 JSON 对象。如果文件里已经有其他配置,需要把 registry-mirrors 合并进原对象,不能直接覆盖。JSON 不支持注释,最后一个字段后也不能多写逗号。可以先用 python3 -m json.tool /etc/docker/daemon.json 检查语法。如果重启失败,再用 systemctl status dockerjournalctl -u docker 查看日志。

加速地址会变

文章中的 <your accelerate address> 必须替换为自己在容器镜像服务控制台当前看到的地址,不要复制别人账号的专属域名。镜像加速服务会随账号、地区和平台策略变化,几年后重新使用时应先回到官方控制台确认。

加速器也不保证所有镜像都立刻可用。新发布或冷门架构的镜像可能还没同步,错误也可能来自 Docker Hub 限流、DNS、证书或本地代理。遇到失败时,先分清是连接超时、鉴权失败还是 manifest 不存在,比不停更换地址更有用。

本文针对的是通过 systemd 运行的 Linux Docker Engine。Docker Desktop、rootless Docker、WSL 中的 Docker 或 Kubernetes 内部运行时,配置入口可能不是 /etc/docker/daemon.json。修改前先用 docker context showdocker info 确认实际环境,避免改了一个根本没被使用的文件。

可用性说明:本文发布于 2019 年 12 月,距今已超过五年。文中涉及的软件版本、接口、下载地址、命令参数和操作界面可能已经发生变化,部分方案在当前环境下可能失效。请结合官方最新文档核对后再操作,生产环境使用前务必先行验证。

版权声明: 本文首发于 指尖魔法屋-Ubuntu使用阿里云加速docker pullhttps://blog.thinkmoon.cn/post/674-guide-ubuntu-docker-pull/) 转载或引用必须申明原指尖魔法屋来源及源地址!