解決的辦法有以下及幾種
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