前言
前段时间不少国内镜像源都突然莫名其妙不能用了,也没个具体说明,我等草民只能胡思乱猜。翻了翻docker的官方文档,倒腾了下clash代理docker,基本也能正常拉取镜像。
参考官方文档:https://docs.docker.com/config/daemon/systemd/#httphttps-proxy
效果图, clash for windows的截图,可以看到clash已经代理了docker的请求。因为房东的网不太行,看起来网速一般,但能拉取到就算是成功吧。
步骤
一开始我的虚拟机里面docker版本是20,在systemd配置文件中按照官方文档试了几次配置HTTP_PROXY
和HTTPS_PROXY
都不行。因为官方文档说在23版本之后支持在daemon.json
文件中配置代理,所以最后试了下升级docker到最新版的26.1.4,结果一次试成功。可能是版本问题,也可能是配置问题。因为已经试通了,所以就没再多试了,感兴趣的话可以自行尝试。
- 更新docker版本。虚拟机中的docker是用二进制包安装的,所以从官网下载最新版的docker压缩包后,解压覆盖重启即可。
- 编辑
/etc/docker/daemon.json
,添加以下内容。其中192.168.1.106:7890
是我局域网中的代理服务器地址,需要修改为自己的代理服务器地址。因为代理服务器不支持https协议代理,所以https_proxy
也是用http
协议。
{ "proxies": { "http-proxy": "http://192.168.1.106:7890", "https-proxy": "http://192.168.1.106:7890" } }
- 加载systemd配置并重启docker
sudo systemctl daemon-reload sudo systemctl restart docker
- 拉取镜像测试。
docker pull nginx