docker pull & push
执行 docker pull ...
和 docker push ...
命令时,是由守护进程 dockerd
执行任务,所以代理需要设置给 dockerd
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo vim /etc/systemd/system/docker.service.d/proxy.conf
proxy.conf
可以是任意名称,后缀不能改。
[Service]
Environment="HTTP_PROXY=http://10.211.55.2:7890"
Environment="HTTPS_PROXY=http://10.211.55.2:7890"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp"
修改后需要重启服务:
sudo systemctl restart docker
sudo systemctl daemon-reload
docker build
sudo docker build -t XXX/xxx \
--build-arg http_proxy=http://10.211.55.2:7890 \
--build-arg https_proxy=http://10.211.55.2:7890 \
.
Tips: docker build
会产生很多容器作为缓存,批量删除容器的方法:
sudo docker stop $(sudo docker ps -a -q)
sudo docker rm $(sudo docker ps -a -q)
Tips: 如果使用代理后,wget
报错:too many redirections
,
建议使用 curl
代替 wget
:
wget https://xxx.com/xxx.zip -O abc.zip
替换为:
curl -L https://xxx.com/xxx.zip > abc.zip
docker container
编辑 ~/.docker/config.json
:
{
"proxies": {
"default": {
"httpProxy": "http://10.211.55.2:7890",
"httpsProxy": "http://10.211.55.2:7890"
}
}
}