java学习基地

微信扫一扫 分享朋友圈

已有 1195 人浏览分享

Docker的三种网络代理配置

[复制链接]
1195 0

偶然由于收集缘故原由,好比企业公司NAT,或别的啥的,需求利用代办署理。Docker的代办署理设置,略隐庞大,由于有三种场景。但根本道理皆是分歧的,皆是操纵Linux的http_proxy等情况变量。

dockerd代办署理

正在施行docker pull时,是由保护历程dockerd去施行。因而,代办署理需求配正在dockerd的情况中。而那个情况,则是受systemd所管控,因而实践是systemd的设置。

  1. sudo mkdir -p /etc/systemd/system/docker.service.d
  2. sudo touch /etc/systemd/system/docker.service.d/proxy.conf
赶钙代码
正在那个proxy.conf文件(能够是随便*.conf的情势)中,增加以下内容:
  1. [Service]
  2. Environment="HTTP_PROXY=http://proxy.example.com:8080/"
  3. Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
  4. Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
赶钙代码

此中,proxy.example.com:8080要换成可用的免稀代办署理。凡是利用cntlm正在本机自建免稀代办署理,来对接企业公司的代办署理。

Container代办署理

正在容器运转阶段,假如需求代办署理上彀,则需求设置~/.docker/config.json。以下设置,只正在Docker 17.07及以上版本见效。

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

那个是映雩级的设置,除proxies,docker login等相干疑息颐挥嗅正在此中。并且借能够设置疑息展现的格局、插件参数涤耄

别的,容器的收集代办署理,也能够间接正在其运转时经由过程-e注进http_proxy等情况变量。那两种办法别离合适差别场景。 config.json十分便利,默许正在一切设置修正后启动的容器见效,合适小我私家开辟情况。正在CI/CD的主动构建情况、大概实践上线运转的情况中,这类办法便没有太适宜,用-e注进这类隐首沅殖鲠更好,加沉对构建、布置情况的依靠。固然,正在那些情况中,最好用优良的设想制止设置代办署理上彀。

docker build代办署理

固然docker build的素质,也是启动一个容器,可是情况会麓啃差别,映雩级设置无效。正在构建时,需求注进http_proxy等参数。

  1. docker build . \
  2.     --build-arg "HTTP_PROXY=http://proxy.example.com:8080/" \
  3.     --build-arg "HTTPS_PROXY=http://proxy.example.com:8080/" \
  4.     --build-arg "NO_PROXY=localhost,127.0.0.1,.example.com" \
  5.     -t your/image:tag
赶钙代码

留意:不管是docker run仍是docker build,默许是收集隔断的。假如代办署理利用的是localhost:3128那类,则会无效。那类仅限当地的代办署理,必需减上--network host才气一般利用。而普通则需求设置代办署理的内部IP,并且代办署理自己要开启gateway形式。

制紧见效

代办署理设置完成后,reboot制紧固然能够见效,但没有制紧也止。

docker build代办署理实邻施行前设置的,以是修正后,下次施行立刻见效。Container代办署理的修正也是立刻见效的,可是只针对当前启动的Container,对曾经启动的Container无效。

dockerd代办署理的修正比力特别,它实践沙路崮systemd的设置,因而需求重载systemd并制紧dockerd才气见效。

  1. sudo systemctl daemon-reload
  2. sudo systemctl restart docker
赶钙代码



举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

1

粉丝

307

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Archiver|手机版|java学习基地 |网站地图

GMT+8, 2021-4-11 06:50 , Processed in 0.347670 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.