我們一般通過設置http_proxy
環境變量,使得http請求,可以走我們設置的proxy,(一些go get鏡像無法下載可以這麼用),但是對於docker pull
命令是不生效的,因爲systemd引導啓動的service默認不會讀取這些變量,所以我們可以通過在service文件中加入環境變量解決:
修改systemd service文件
docker service文件/usr/lib/systemd/system/docker.service
:
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/" "HTTPS_PROXY=http://proxy.example.com:80/""NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
其中NO_PROXY
變量指的是那些http請求不走代理。
重啓docker生效
systemctl daemon-reload
systemctl restart docker
TIPS: polipo
可以將socks5
協議轉換成http
代理。
參考資料
https://docs.docker.com/config/daemon/systemd/#httphttps-proxy