Docker Proxy 設定

問題來由

因為公司部分網域不能直連外網,所以必須透過 proxy。大多時候可以透過設定下列環境變數就可以用:

1
2
export http_proxy="http://proxy_ip:proxy_port"
export https_proxy="http://proxy_ip:proxy_port"

但有些時候使用不同服務都需要特別標明或設定。例如,Python 的套件管理工具pip,就需要在安裝時帶入--proxy參數。

而我起初沒意識到 docker 也須透過自己的方式設定 proxy,在docker pull指令老是遇到錯誤

1
⚠️ Error response from daemon: Get "https://registry-1.docker.io/v2/": read tcp x.x.x.x:x->y.y.y.y:y: read: connection reset by peer

解決方式

追根究底後發現 docker 的 proxy 設定需要去新增(以 CentOS 環境為例) /etc/systemd/system/docker.service.d/http-proxy.conf設定檔才有用:

1
2
mkdir -p /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/http-proxy.conf
1
2
3
[Service]
Environment="HTTP_PROXY=http://proxy_ip:proxy_port"
Environment="HTTPS_PROXY=http://proxy_ip:proxy_port"

之後再重啟服務

1
2
systemctl daemon-reload
systemctl restart docker

就可以正常透過docker pull下載 image 囉!

參考來源

0%