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

大功吿成!!
配置后的验证和排错
重启 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 docker 和 journalctl -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 show 和 docker info 确认实际环境,避免改了一个根本没被使用的文件。
可用性说明:本文发布于 2019 年 12 月,距今已超过五年。文中涉及的软件版本、接口、下载地址、命令参数和操作界面可能已经发生变化,部分方案在当前环境下可能失效。请结合官方最新文档核对后再操作,生产环境使用前务必先行验证。
版权声明: 本文首发于 指尖魔法屋-Ubuntu使用阿里云加速docker pull(https://blog.thinkmoon.cn/post/674-guide-ubuntu-docker-pull/) 转载或引用必须申明原指尖魔法屋来源及源地址!
评论
使用 GitHub 账号登录后即可留言,支持 Markdown。