日常妙招屋
白蓝主题五 · 清爽阅读
首页  > 网络监控

Docker镜像加速配置:让拉取镜像不再卡成PPT

你有没有试过在公司服务器上拉一个 ref="/tag/2019/" style="color:#E3A3CF;font-weight:bold;">Docker 镜像,结果等了十分钟才下载了一半?旁边同事都部署完三个服务了,你的命令行还在那里慢悠悠地跑着 docker pull ubuntu。这时候真想把网线拔了重开。

其实这不是网络不行,而是默认的 Docker 镜像源在国外,访问起来就像高峰期挤地铁,又慢又卡。好在我们有个妙招——配置镜像加速器,让拉取速度直接起飞。

什么是镜像加速器?

简单说,就是在国内架设一些“缓存仓库”。当你请求一个海外镜像时,这些加速节点会提前帮你存一份,下次再拉取就从最近的节点拿,速度快得多。类似你在小区楼下超市买牛奶,总比开车去郊区大仓取货快吧。

常见镜像加速地址推荐

国内几家大厂都提供了免费的 Docker 镜像加速服务,稳定又不用注册:

  • 阿里云:https://<你的专属ID>.mirror.aliyuncs.com(需登录容器镜像服务获取)
  • 中科大:https://docker.mirrors.ustc.edu.cn
  • 网易云:http://hub-mirror.c.163.com
  • 腾讯云:https://mirror.ccs.tencentyun.com

如何配置加速器?

最常用的办法是修改 Docker 的配置文件 daemon.json。这个文件一般在 /etc/docker/ 目录下。

先检查一下有没有这个文件:

ls /etc/docker/daemon.json

如果没有,就创建一个:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ]
}
EOF

保存后重启 Docker 服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

重启完可以用这条命令看看是否生效:

sudo docker info | grep "Registry Mirrors" -A 2

如果看到你配置的地址列出来了,说明已经成功启用。

小贴士:别忘了权限问题

有时候改完配置重启失败,多半是因为 JSON 格式写错了,比如多了一个逗号或者漏了引号。可以用在线工具校验一下格式。另外确保文件权限正确:

sudo chmod 644 /etc/docker/daemon.json

还有些环境比如树莓派或旧版系统,可能路径不一样,但原理是一样的——找到 daemon.json 或启动参数加 --registry-mirror 就行。

我家那台老 NAS 装 Portainer 总是卡住,加上中科大的镜像源之后,几秒钟就拉完了。现在连我爸妈都知道:“你爸配了个‘加速’,机器变聪明了。”