Docker daemon proxy 设置
in Linux with 0 comment

Docker daemon proxy 设置

in Linux with 0 comment

Docker daemon proxy 设置

https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

使用 Docker 过程中总会遇到一些镜像超时,如 gcr.io 下的镜像,我们就无法通过普通的 registry mirrors 方便地拉取镜像。所以我们需要为我们当前 docker 进程配置 HTTP/HTTPS proxy。

Docker 守护进程可以使用 HTTP_PROXY,HTTPS_PROXY 和 NO_PROXY 三个环境变量来配置 HTTP 或 HTTPS 的代理,但是这三个环境变量必须在进程启动之前设置好,无法在 /etc/docker/daemon.json 中配置。

这里打算采用覆盖默认的 docker.service 的方式来配置代理。

配置方法

  1. 创建 /etc/systemd/system/docker.service.d 文件夹:
sudo mkdir -p /etc/systemd/system/docker.service.d
  1. 在该目录下创建文件 /etc/systemd/system/docker.service.d/http-proxy.conf 并添加 PROXY 相关的变量:
sudo vim /etc/systemd/system/docker.service.d/http-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"
  1. 刷新 service 并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
  1. 验证是否设置成功
systemctl show --property=Environment docker
Environment=HTTP_PROXY=http://proxy.example.com:80 HTTPS_PROXY=https://proxy.example.com:443 NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp

最后

如果你没有 http proxy server,但有 socks 连接,那么推荐使用 https://github.com/oyyd/http-proxy-to-socks 运行一个 http proxy server。