为 Docker 配置代理服务器

Docker 会读取环境变量http_proxyhttps_proxy,前提是在它的环境中而不是在一个 bash 中

本文章需要您的 Docker 运行于 systemd,否则,请寻找别的方法

如果 Docker 运行于 systemd,则我们通过 export 设置的环境变量不能被它的守护进程读取到

注意事项

下文注释

在下文代码块中,左上角写着#的为需要超级用户身份执行的权限;左上角写着$的只需要普通用户既可执行 以下代码只使用#$来表示权限等级,不再明文写sudo

编辑环境

找到docker.service,它应该位于/usr/lib/systemd/system/docker.service,如果不在这里,您可以使用systemctl status docker来找到它,输出大概如下

console
1
Loaded: loaded (/lib/systemd/system/docker.service; enabled; preset: enabled)

编辑这个 service 文件,在Service表下添加

console
1
2
Environment="HTTP_PROXY=http://......"
Environment="HTTPS_PROXY=http://......"

重载守护进程配置

# bash
1
systemctl daemon-reload