配置/etc/docker/daemon.json
Docker 守护程序在其启动环境中使用以下环境变量来配置 HTTP 或 HTTPS 代理行为:
- HTTP_PROXY
- http_proxy
- HTTPS_PROXY
- https_proxy
- NO_PROXY
- no_proxy
在 Docker Engine 23.0 及更高版本中,您还可以在/etc/docker/daemon.json(默认地址)文件中为守护进程配置代理行为:
{"proxies": {"http-proxy": "127.0.0.1:7897","https-proxy": "127.0.0.1:7897","no-proxy": "*.test.example.com,.example.org,127.0.0.0/8"}
}
警告:
1 、27.0.0.1:7897 为自己的代理地址
2、官方文档中配置为:
“http-proxy”: “http://proxy.example.com:3128”,
“https-proxy”: “https://proxy.example.com:3129”,
这里是有问题的,务必删除http:// 或https://
配置在systemd文件中
如果您使用 HTTP 或 HTTPS 代理服务器(例如在公司设置中),则必须在 systemd 服务文件中指定守护进程代理配置,而不是在文件中daemon.json或使用环境变量。
- 为该服务创建一个 systemd 插入目录docker:
$ sudo mkdir -p /etc/systemd/system/docker.service.d
- 创建一个名为的文件/etc/systemd/system/docker.service.d/http-proxy.conf 并添加HTTP_PROXY环境变量:
[Service]
Environment="HTTP_PROXY=proxy.example.com:3128"
如果您使用 HTTPS 代理服务器,请设置HTTPS_PROXY环境变量:
[Service]
Environment="HTTPS_PROXY=proxy.example.com:3129"
可以设置多个环境变量;设置非 HTTPS 和 HTTPs 代理;
[Service]
Environment="HTTP_PROXY=proxy.example.com:3128"
Environment="HTTPS_PROXY=proxy.example.com:3129"
注意
代理值中的特殊字符(例如#?!()[]{})必须使用 进行双重转义%%。例如:
[Service]
Environment=“HTTP_PROXY=domain%%5Cuser:complex%%23pass@proxy.example.com:3128/”
- 如果您有需要在没有代理的情况下连接的内部 Docker Register,则可以通过NO_PROXY环境变量指定它们。
例如:
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:3128"
Environment="HTTPS_PROXY=https://proxy.example.com:3129"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp"
- 刷新更改并重新启动 Docker
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
- 验证配置是否已加载并与您所做的更改相匹配,例如:
$ sudo systemctl show --property=Environment dockerEnvironment=HTTP_PROXY=http://proxy.example.com:3128 HTTPS_PROXY=https://proxy.ex
【Qinghub Studio 】更适合开发人员的低代码开源开发平台
【QingHub企业级应用统一部署】
【QingHub企业级应用开发管理】
【QingHub演示】
【https://qingplus.cn】