该文章引用自:http://roc.havemail.cn/archives/1640.html 感谢作者,我放到这里给自己留个备份。
作者原文介绍了《详解 Docker 的三种网络代理配置》,按理说,在服务器上
直接配置 http_proxy 和 https_proxy 代理
,所有的服务就都能访问外网了。
但是实际操作过程中,发现配置了这两个环境变量,也让其生效了,Docker 仍然不能访问外网拉取镜像。
解决办法:
解决办法是采用了原作者文章中的第二种网络配置方式,配置方法如下:
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/http-proxy.conf
# 在文件中输入以下内容,替换成你家对应的 proxy 地址即可
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080/"
Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
# 保存退出,刷新 docker 服务并重启
sudo systemctl daemon-reload
sudo systemctl restart docker
我的实际操作:
我的实际操作过程如下,可以看到没有配置之前的报错,和配置完成后,可以正常 docker pull 的日志:
root@gpdbs05:~# docker pull mysql
Using default tag: latest
Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io: Temporary failure in name resolution
root@gpdbs05:~# sudo mkdir -p /etc/systemd/system/docker.service.d
root@gpdbs05:~# sudo touch /etc/systemd/system/docker.service.d/http-proxy.conf
root@gpdbs05:~# sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
root@gpdbs05:~# sudo systemctl daemon-reload
root@gpdbs05:~# sudo systemctl restart docker
root@gpdbs05:~# docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
72a69066d2fe: Downloading [===================================> ] 19.28MB/27.15MB
93619dbc5b36: Verifying Checksum
99da31dd6142: Download complete
626033c43d70: Download complete
37d5d7efb64e: Download complete
ac563158d721: Download complete
d2ba16033dad: Download complete
688ba7d5c01a: Download complete
00e060b6d11d: Downloading [======> ] 14.17MB/105.2MB
1c04857f594f: Download complete
4d7cfa90e6ea: Download complete
e0431212d27d: Download complete
End~
版权声明:本文为chrisy521原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。