当运行 Docker 的服务器无法直接访问 Internet 时,需要代理。
Docker 守护进程在其启动环境中使用 HTTP_PROXY 、 HTTPS_PROXY 和 NO_PROXY 环境变量来配置 HTTP 或者 HTTPS 代理行为。
在本快速教程中,我们将展示如何在 HTTP 或者 HTTPS 代理服务器后面配置和运行 Dokcer。
01 首先,我们需要为docker服务创建一个systemd drop-in目录:
$sudo mkdir -p /etc/systemd/system/docker.service.d
02 创建一个名为 /etc/systemd/system/docker.service.d/http-proxy.conf
的文件,添加 HTTP_PROXY 环境变量:
$vi /etc/systemd/system/docker.service.d/http-proxy.conf [Service] #Environment="HTTP_PROXY="http://USERNAME:jack@onitroad[your.proxy.server]:[port]" Environment="HTTP_PROXY=http://lotfi:jack@onitroad:80/"
或者,如果我们使用 HTTPS 代理服务器,请创建一个名为 /etc/systemd/system/docker.service.d/https-proxy.conf
的文件,添加 HTTPS_PROXY 环境变量:
$vi /etc/systemd/system/docker.service.d/https-proxy.conf [Service] #Environment="HTTP_PROXY="http://USERNAME:jack@onitroad[your.proxy.server]:[port]" Environment="HTTPS_PROXY=https://lotfi:jack@onitroad:443/"
或者,如果我们有内部 Docker 注册表需要联系而无需代理,我们可以通过 NO_PROXY 环境变量指定它们:
$vi /etc/systemd/system/docker.service.d/no-proxy.conf [Service] Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.onitroad.com"
03 现在,重新加载 systemd 守护进程
$systemctl daemon-reload
04 重启docker
$systemctl restart docker
05 最后验证配置是否已经加载:
$systemctl show docker --property Environment Environment=HTTP_PROXY=http://lotfi:jack@onitroad:80/HTTPS_PROXY=https://lotfi:jack@onitroad:443/NO_PROXY=localhost,127.0.0.1,docker-registry.onitroad.com
日期:2020-06-02 22:18:44 来源:oir作者:oir