Docker 设置代理的方式

Mar 27, 2021 • 预计阅读时间 1 分钟

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://proxy.example.com:80"
Environment="HTTPS_PROXY=https://proxy.example.com:443"
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://proxy.example.com:80 \
  --build-arg https_proxy=https://proxy.example.com:443 \
  .

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://proxy.example.com:80",
      "httpsProxy": "https://proxy.example.com:443"
    }
  }
}
DockerUbuntu
版权声明:如果转发请带上本文链接和注明来源。

lvv.me

iOS/macOS Developer

Docker buildx 编译多架构镜像

在树莓派上开启 WIFI 连接