Docker 配置镜像源
资源
可用 Docker Hub 镜像加速器列表见 Docker Hub 镜像加速器。
修改方式
网络上有不少教程是先修改 /etc/docker/daemon.json,然后:
sudo systemctl daemon-reload
sudo systemctl restart docker
但是这样需要重启 Docker。虽然可以先给 Docker 加上 live-store 属性,但是我也不敢冒这个风险。
查了相关资料之后我发现:让 docker 重新加载配置只需要向其发送一个信号。如果是用 systemctl 管理 docker,可以直接这样做(参考这篇文章):
sudo systemctl reload docker
然后用 docker info
看是否成功即可。
Tip
daemon-reload
只是让 systemctl
重新加载 /lib/systemd/system/*.service
中的配置文件而已,这样 restart
/ reload
/ stop
/ start
等功能的含义才会发生变化,在这个例子里面,我们只是修改了 docker 自己的配置文件,并没有修改 docker 的运作方式,因此不需要让 systemctl
重新加载配置。
不过到这里还没有结束,还得禁用 BuildKit,见下面一节。
BuildKit 不读取镜像源
网上也有很多人反映这一点,比如 https://github.com/moby/buildkit/issues/606
可以通过禁用 BuildKit 来解决:
sudo DOCKER_BUILDKIT=0 docker <其他参数...>
我是这样才能最终完成下载的。另外,使用 BuildKit 就不用给 docker
命令 root 权限,不用 BuildKit 就要给 root 权限,应该是两者的运行方式不同。