Ubuntu Docker 配置代理(适用 docker pull、docker build)

616 阅读1分钟

本文系统代理以Clash为例

创建或编辑 Docker systemd 配置目录

bash复制编辑sudo mkdir -p /etc/systemd/system/docker.service.d

2️⃣ 写入代理配置文件

bash复制编辑sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf

内容示例(HTTP/HTTPS 都写上,按你实际代理端口改):

ini复制编辑[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,::1"

3️⃣ 重新加载配置 & 重启 Docker

bash复制编辑sudo systemctl daemon-reload
sudo systemctl restart docker

4️⃣ 验证 Docker 环境变量是否生效

bash复制编辑sudo systemctl show --property=Environment docker

确认能看到:

ini复制编辑Environment=HTTP_PROXY=... HTTPS_PROXY=... NO_PROXY=...

5️⃣ pull 镜像测试

bash复制编辑docker pull busybox

确认可以正常走代理拉取。

补充说明:

  • 代理为 socks5 时,Docker daemon 不直接支持 socks5,需要配 HTTP proxy 转 socks5(如 polipo / privoxy)

  • 这个配置只影响 daemon 内部的拉取/构建,和容器内应用无关

  • 如果你还需要容器内走代理,要在 docker run 里手动 -e 传 proxy 环境变量进去。

示例:

bash复制编辑docker run -e HTTP_PROXY=http://127.0.0.1:8080 busybox env