關於docker無法訪問倉庫的映象代理問題

学不会xuebuhui發表於2024-11-06

解決的辦法有以下及幾種

1. 修改映象源,改成國內的映象地址

注意: docker pull時修改系統的代理不會讓docker pull走系統代理,docker pull 的代理被 systemd 接管,所以需要設定 systemd...,docker build/run 的代理參考方法2

# 建立以下檔案
vim /etc/docker/daemonjson

編輯模式輸入以下內容

{
  "registry-mirrors":[
        "https://docker.1panel.live",
        "https://docker.anyhub.us.kg",
        "https://dockerhub.icu"
  ]
}

或者

{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

修改完以後按以下命令生效配置

systemctl daemon-reload
systemctl restart docker

2 設定為docker提供代理

設定 docker 全域性代理
設定方法參考官方文件: https://docs.docker.com/network/proxy/
注意新版和舊版本(17.07以前)設定方法不一樣,比舊版更簡單而且不需要重啟服務,網上文章基本都是針對舊版本的,可能未來又變化了,所以多看官方文件~
以及這種設定方法只對 build 和 run 的容易有用, docker pull 要按照上面的方法設定。

vim ~/.docker/config.json

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://172.17.0.1:8123",
     "httpsProxy": "http://172.17.0.1:8123",
     "noProxy": "localhost,127.0.0.1,.daocloud.io"
   }
 }
}

這樣設定後,build和run都會將http_proxy和https_proxy ftp_proxy變數設定成對應的代理地址,如果你在容器裡面不想使用這個代理了,需要export http_proxy= 和 export https_proxy= 將兩個變數設定為空

參考資料:https://www.cnblogs.com/Chary/p/18502958

相關文章