1. 程式人生 > 其它 >docker配置HTTP/HTTPS代理訪問外網

docker配置HTTP/HTTPS代理訪問外網

技術標籤:docker配置代理docker

一、設定代理原因

因為公司安全需要,所有外網需配置代理後才能上網,dockerpullcentos會報錯: 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

四、檢視配置結果

[[email protected] ~]# 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代理