Docker 在内网服务器通过配置代理访问外网拉取镜像

  • Post author:
  • Post category:其他


该文章引用自: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 版权协议,转载请附上原文出处链接和本声明。