docker-代理服务器

配置Docker以使用代理服务器

如果容器需要使用HTTP,HTTPS或FTP代理服务器,则可以通过不同方式对其进行配置:

  • 在Docker 17.07及更高版本中,可以 将Docker客户端配置为自动将代理信息传递给容器。

  • 在Docker 17.06及更低版本中,必须 在容器中设置适当的环境变量可以在构建映像时(这使图像不那么便携)或创建或运行容器时执行此操作。

配置Docker

  该方法覆盖了默认的docker.service文件。 
  1. 为docker服务创建一个内嵌的systemd目录

$ mkdir -p /etc/systemd/system/docker.service.d

  2. 创建/etc/systemd/system/docker.service.d/http-proxy.conf文件,并添加HTTP_PROXY环境变量。其中[proxy-addr]和[proxy-port]分别改成实际情况的代理地址和端口:

[Service]
Environment="HTTP_PROXY=http://[proxy-addr]:[proxy-port]/" "HTTPS_PROXY=https://[proxy-addr]:[proxy-port]/"

  3. 如果还有内部的不需要使用代理来访问的Docker registries,那么嗨需要制定NO_PROXY环境变量:

[Service]
Environment="HTTP_PROXY=http://[proxy-addr]:[proxy-port]/" "HTTPS_PROXY=https://[proxy-addr]:[proxy-port]/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"

  4. 更新配置:

$ systemctl daemon-reload

  5. 重启Docker服务:

$ systemctl restart docker

使用环境变量

手动设置环境变量

在构建映像时,或--env在创建或运行容器时使用标志时,可以将以下一个或多个变量设置为适当的值。此方法使图像的可移植性降低,因此如果您使用Docker 17.07或更高版本,则应该配置Docker客户端 。

变量 Dockerfile示例 docker run 例
HTTP_PROXY ENV HTTP_PROXY "http://127.0.0.1:3001" --env HTTP_PROXY="http://127.0.0.1:3001"
HTTPS_PROXY ENV HTTPS_PROXY "https://127.0.0.1:3001" --env HTTPS_PROXY="https://127.0.0.1:3001"
FTP_PROXY ENV FTP_PROXY "ftp://127.0.0.1:3001" --env FTP_PROXY="ftp://127.0.0.1:3001"
NO_PROXY ENV NO_PROXY "*.test.example.com,.example2.com" --env NO_PROXY="*.test.example.com,.example2.com"

猜你喜欢

转载自www.cnblogs.com/wwchihiro/p/9316144.html