为 Docker 配置 HTTP 代理(systemd 方式)
在公司或特定网络环境下使用 Docker 时,可能会遇到网络访问受限、拉取镜像缓慢等问题。这时通过为 Docker 设置 HTTP/HTTPS 代理,可以有效提升访问效率。本文记录如何使用 systemd
的方式为 Docker 服务设置代理。
步骤一:创建配置目录
Docker 使用 systemd
管理服务,我们需要先为它创建一个服务配置目录:
mkdir -p /etc/systemd/system/docker.service.d
步骤二:编辑代理配置文件
在该目录下创建一个新的配置文件 http-proxy.conf
:
vi /etc/systemd/system/docker.service.d/http-proxy.conf
示例配置内容如下,根据你的代理服务器地址进行修改:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.somecorp.local"
💡
NO_PROXY
用于指定不走代理的地址,可以根据需要添加内网地址或自定义的镜像源。
步骤三:重新加载并重启 Docker 服务
配置完成后,运行以下命令使配置生效:
systemctl daemon-reexec
systemctl daemon-reload
systemctl restart docker
这些命令的含义:
daemon-reexec
:重新执行 systemd 主进程(较少用,但推荐一起执行)daemon-reload
:重新加载服务配置restart docker
:重启 Docker 服务以应用代理配置
步骤四:验证代理配置是否生效
通过以下命令查看 Docker 是否已读取代理配置:
docker info | grep -i proxy
如果输出如下内容,说明代理设置成功:
HTTP Proxy: http://127.0.0.1:7890
HTTPS Proxy: http://127.0.0.1:7890
小结
以上步骤适用于大多数 Linux 系统(如 Ubuntu、CentOS)中使用 systemd
管理 Docker 的场景。通过配置 HTTP/HTTPS 代理,可以加快镜像下载速度,解决访问问题,是提升开发效率的一个重要手段。
如需支持 SOCKS5 代理或更复杂的场景(如只为某些镜像设置代理),可以配合 proxychains、iptables 或 Docker CLI 的 --config
参数进一步优化。
如果你有部署在 CI/CD 中的需求,也可以将该配置同步到构建环境中。欢迎留言交流其他代理使用经验 🙌