docker配置HTTP/HTTPS代理訪問外網
阿新 • • 發佈:2020-12-11
技術標籤: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代理