docker pull 設置代理(一次設置/不需來回重啟)
背景
docker pull無法拉取,只能設置代理。而常規 export 對docker pull無效,因實際docker調用的守護進程執行操作,docker pull只負責傳遞消息。
按照官方文檔 https://docs.docker.com/engine/daemon/proxy/ ,配置daemon.json,需要每次重啟,且對容器內會有影響。
既想在pull時走代理,又不想容器中的請求走代理,就需要pull時配置daemon開啟->重啟、run時配置daemon關閉代理->重啟,麻煩不優雅。
且服務器上docker部署了其他服務,不適合來回重啟docker守護進程。
不需重啟docker的代理配置方式
原理:本地開個監聽端口(搜了半天采用privoxy),連接到遠程科學服務器;docker守護進程連接到該本地端口。
關閉代理:注釋privoxy轉發配置并重啟
開啟代理:取消注釋并重啟
參考 https://blog.csdn.net/lpwmm/article/details/104044963
# 安裝 privoxy
yum install -y privoxy
vi /etc/privoxy/config
末尾添加 forward-socks5t / x.x.x.x:7890 .
# 設置docker守護進程代理
## 如果沒有/etc/docker文件夾->需創建
vi /etc/docker/daemon.json
{
"proxies": {
"http-proxy": "http://127.0.0.1:8118",
"https-proxy": "http://127.0.0.1:8118",
"no-proxy": "*.test.example.com,.example.org,127.0.0.0/8"
}
}
# 重啟docker
systemctl daemon-reload
systemctl restart docker
使用
開啟代理:
vi /etc/privoxy/config
取消最后一行也就是代理配置的注釋
systemctl restart privoxy
關閉代理:注釋配置/其他如上

浙公網安備 33010602011771號