docker配置HTTP/HTTPS代理访问外网
一、设置代理原因因为公司安全需要,所有外网需配置代理后才能上网,dockerpullcentos会报错:docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout ex
·
一、 设置代理原因
因为公司安全需要,所有外网需配置代理后才能上网,docker pull centos会报错:
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
原因:如果在docker 宿主机上设置了代理(HTTP、HTTPS)之后,在docker daemon 启动的时候,也要相应的告知 daemon,使用代理来访问internet!!
二、代理配置
官网解释如下:
有两种方式:
1. 通过daemon.json文件来修改
2. 通过覆盖docker.service来实现
但是对于代理的配置,
官网讲只能使用第二个方案。 具体的步骤如下:
1、创建docker.service目录
mkdir -p /etc/systemd/system/docker.service.d
2、创建HTTP&HTTPS代理文件
vi /etc/systemd/system/docker.service.d/http-proxy.conf
具体配置内容: # proxy-addr为代理IP或域名;proxy-port为代理端口;NO_PROXY后面接不需要代理的私有仓库的域名或者IP,以英文逗号结尾
[Service]
Environment="HTTP_PROXY=http://proxy-addr:proxy-port" #代理服务器地址
Environment="HTTPS_PROXY=http://proxy-addr:proxy-port" #https
Environment="NO_PROXY=localhost,127.0.0.0/8,docker-registry.example.com,.corp" #哪些地址不需要走代理
三、重启docker
systemctl daemon-reload
systemctl restart docker
四、查看配置结果
[root@node1 ~]# sudo systemctl show --property=Environment docker
Environment=HTTP_PROXY=http://proxy-addr:proxy-port/ HTTPS_PROXY=http://proxy-addr:proxy-port/ NO_PROXY=localhost,127.0.0.0/8,docker-registry.example.com,.corp
参考链接:[https://docs.docker.com/config/daemon/systemd/ 官方:docker添加http代理
更多推荐
已为社区贡献2条内容
所有评论(0)