Docker专题【左扬精讲】—— HTTP/HTTPS 代理
Docker专题【左扬精讲】—— HTTP/HTTPS 代理
Docker 守护程序在其启动环境中使用 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 环境变量来配置 HTTP 或 HTTPS 代理。NO_PROXY 您不能使用该 daemon.json 文件配置这些环境变量。
  此示例覆盖默认 docker.service 文件。
如果您在 HTTP 或 HTTPS 代理服务器后面,例如在公司设置中,则需要在 Docker systemd 服务文件中添加此配置。
Note for rootless mode
在 rootless mode 运行 Docker 时,systemd 配置文件的位置是不同的。在 rootless 模式下运行时,Docker 作为用户模式 systemd 服务启动,并使用存储在每个用户主目录中的文件
~/.config/systemd/user/docker.service.d/。此外,systemctl必须在不带sudo和带--user标志的情况下执行。如果您在无根模式下运行 Docker,请选择下面的“无根模式”选项卡。
1、regular install
- 
为 docker 服务创建一个 systemd 插入目录: sudo mkdir -p /etc/systemd/system/docker.service.d
- 
创建一个名为 /etc/systemd/system/docker.service.d/http-proxy.conf添加HTTP_PROXY环境变量的文件:[Service] Environment="HTTP_PROXY=http://proxy.example.com:80"如果您在 HTTPS 代理服务器后面,请设置 HTTPS_PROXY环境变量:[Service] Environment="HTTPS_PROXY=https://proxy.example.com:443"可以设置多个环境变量;设置非 HTTPS 和 HTTPS 代理; [Service] Environment="HTTP_PROXY=http://proxy.example.com:80" Environment="HTTPS_PROXY=https://proxy.example.com:443"
- 
如果您有内部 Docker 注册表需要在不使用代理的情况下联系,您可以通过 NO_PROXY环境变量指定它们。该 NO_PROXY变量指定一个字符串,其中包含应从代理中排除的主机的逗号分隔值。这些是您可以指定以排除主机的选项:- IP 地址前缀 (1.2.3.4)
- 域名或特殊的 DNS 标签 (*)
- 域名与该名称和所有子域匹配。以“.”开头的域名仅匹配子域。例如,给定域 foo.example.com和example.com:- example.com匹配- example.com和- foo.example.com, 和
- .example.com仅匹配- foo.example.com
 
- 单个星号 ( *) 表示不应进行代理
- IP 地址前缀接受IP地址端口号(1.2.3.4:80)和域名 (foo.example.com:80)。
 配置示例: [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 
- IP 地址前缀 (
- 
刷新更改并重新启动 Docker sudo systemctl daemon-reload sudo systemctl restart docker
- 
验证配置是否已加载并与您所做的更改相匹配,例如: sudo 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
2、rootless mode
- 
为 docker 服务创建一个 systemd 插入目录: mkdir -p ~/.config/systemd/user/docker.service.d
- 
创建一个名为 ~/.config/systemd/user/docker.service.d/http-proxy.conf添加HTTP_PROXY环境变量的文件:[Service] Environment="HTTP_PROXY=http://proxy.example.com:80" 如果您在 HTTPS 代理服务器后面,请设置 HTTPS_PROXY环境变量:[Service] Environment="HTTPS_PROXY=https://proxy.example.com:443" 可以设置多个环境变量;设置非 HTTPS 和 HTTPS 代理; [Service] Environment="HTTP_PROXY=http://proxy.example.com:80" Environment="HTTPS_PROXY=https://proxy.example.com:443" 
- 
如果您有内部 Docker 注册表需要在没有代理的情况下联系,您可以通过 NO_PROXY环境变量指定它们。该 NO_PROXY变量指定一个字符串,其中包含应从代理中排除的主机的逗号分隔值。这些是您可以指定以排除主机的选项:- IP 地址前缀 (1.2.3.4)
- 域名或特殊的 DNS 标签 (*)
- 域名与该名称和所有子域匹配。以“.”开头的域名仅匹配子域。例如,给定域 foo.example.com和example.com:- example.com匹配- example.com和- foo.example.com, 和
- .example.com仅匹配- foo.example.com
 
- 单个星号 ( *) 表示不应进行代理
- IP 地址前缀接受IP地址端口号(1.2.3.4:80)和域名 (foo.example.com:80)。
 配置示例: [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" 
- IP 地址前缀 (
- 
刷新更改并重新启动 Docker systemctl --user daemon-reload systemctl --user restart docker
- 
验证配置是否已加载并与您所做的更改相匹配,例如: systemctl --user 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 
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号