为Docker配置网络代理

由于网络原因,需要为docker配置网络代理,配置docker网络适用三种场景,具体实现与Linux设置 http_proxy 环境变量原理相同。

Dockerd代理配置

在执行docker pull拉取时是由dockerd守护进程来执行的,所以需要在dockerd中配置代理,而dockerd 受systemd 管控,因此只需对 systemd 进行配置即可。

Source Code


  1. sudo mkdir -p /etc/systemd/system/docker.service.d
  2. sudo touch /etc/systemd/system/docker.service.d/proxy.conf

在创建的 proxy.conf 文件中键入以下内容,当然 proxy.conf 文件的名称可以是任意,只需后缀为 .conf 即可。

Source Code


  1. [Service]
  2. Environment="HTTP_PROXY=http://proxy.com:8080/"
  3. Environment="HTTPS_PROXY=http://proxy.com:8080/"
  4. Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

 复制 文本

重启生效。

Source Code


  1. sudo systemctl daemon-reload
  2. sudo systemctl restart docker

在本文中,proxy.com:8080 要更换为可用的免密代理。

Container容器代理

在容器运行阶段,需要使用代理网络,则直接配置 ~/.docker/config.json 文件。

Source Code


  1. {
  2. "proxies":
  3. {
  4. "default":
  5. {
  6. "httpProxy": "http://proxy.com:8080",
  7. "httpsProxy": "http://proxy.com:8080",
  8. "noProxy": "localhost,127.0.0.1,.example.com"
  9. }
  10. }
  11. }

 复制 文本

这是用户级别的配置方式,除此之外,还可以通过 -e 参数来注入 http_proxy 环境变量,具体实

Docker Build 代理

虽然 docker build 的本质,也是启动一个容器,但是环境会略有不同,用户级配置无效。在构建时,需要注入 http_proxy 等参数。

Source Code


  1. docker build . \
  2. --build-arg "HTTP_PROXY=http://proxy.com:8080/" \
  3. --build-arg "HTTPS_PROXY=http://proxy.com:8080/" \
  4. --build-arg "NO_PROXY=localhost,127.0.0.1,.example.com" \
  5. -t your/image:tag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值