在很多企业环境中,直接访问外网可能受到防火墙或其他限制。配置代理后,开发人员可以在受控网络环境中正常使用 Docker 拉取镜像或访问外部资源。
国内访问 Docker Hub 或其他镜像源时,可能受到网络延迟或区域限制。通过配置代理或设置加速镜像源,可以显著提高镜像拉取速度。
某些场景下,运行的容器需要通过代理访问外部 API 或服务,比如爬虫程序、数据采集任务等。
配置代理可以帮助企业统一管理 Docker 相关的网络流量,便于审计和监控。
HTTP_PROXY
和 HTTPS_PROXY
配置代理。步骤:~/.docker/config.json
%USERPROFILE%\.docker\config.json
{
"proxies": {
"default": {
"httpProxy": "http://your-proxy-address:port",
"httpsProxy": "http://your-proxy-address:port",
"noProxy": "localhost,127.0.0.1,.example.com"
}
}
}
重启 Docker 客户端后,运行以下命令确认代理是否生效:
docker info
/etc/systemd/system/docker.service.d/http-proxy.conf
:sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://your-proxy-address:port"
Environment="HTTPS_PROXY=http://your-proxy-address:port"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
sudo systemctl daemon-reload
sudo systemctl restart docker
查看守护进程环境变量:
sudo systemctl show --property=Environment docker
-e
参数传递代理环境变量:docker run -e HTTP_PROXY=http://your-proxy-address:port \
-e HTTPS_PROXY=http://your-proxy-address:port \
-e NO_PROXY=localhost,127.0.0.1 \
your-image
HTTP_PROXY
和 HTTPS_PROXY
,区分大小写)。http://username:password@proxy-address:port
noProxy
设置无效NO_PROXY
值可能需要显式传递。bridge
或 host
),确保网络模式支持代理流量。通过合理配置 Docker 的代理设置,可以显著提高网络访问效率,解决常见的网络限制问题。在实际操作中,根据环境的不同灵活调整配置,以满足开发和部署的需求。