该文章引用自: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 的日志:文章来源:https://www.toymoban.com/news/detail-555006.html
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~文章来源地址https://www.toymoban.com/news/detail-555006.html
到了这里,关于Docker 在内网服务器通过配置代理访问外网拉取镜像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!