插件窝 干货文章 如何为 Docker 连接设置代理

如何为 Docker 连接设置代理

proxy 代理 Docker example 311    来源:    2025-04-30

Docker 代理设置指南

要为 Docker 连接设置代理,您可以根据不同场景选择以下方法:

1. 为 Docker 守护进程设置代理

适用于需要代理访问外部资源(如拉取镜像)的情况:

方法一:通过 systemd 配置(Linux 系统)

  1. 创建或编辑配置文件:

    sudo mkdir -p /etc/systemd/system/docker.service.d
    sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
    
  2. 添加以下内容(根据您的代理设置修改):

    [Service]
    Environment="HTTP_PROXY=http://proxy.example.com:8080/"
    Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
    Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
    
  3. 重新加载并重启 Docker:

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

方法二:通过 Docker 配置文件

编辑或创建 /etc/docker/daemon.json 文件:

{
  "proxies": {
    "default": {
      "httpProxy": "http://proxy.example.com:8080",
      "httpsProxy": "http://proxy.example.com:8080",
      "noProxy": "localhost,127.0.0.1,.example.com"
    }
  }
}

然后重启 Docker 服务。

2. 为容器设置代理

方法一:通过环境变量

在运行容器时添加代理环境变量:

docker run -e HTTP_PROXY=http://proxy.example.com:8080 \
           -e HTTPS_PROXY=http://proxy.example.com:8080 \
           -e NO_PROXY=localhost,127.0.0.1 \
           your_image

方法二:在 Dockerfile 中设置

在 Dockerfile 中添加:

ENV HTTP_PROXY=http://proxy.example.com:8080
ENV HTTPS_PROXY=http://proxy.example.com:8080
ENV NO_PROXY=localhost,127.0.0.1

3. 为 Docker CLI 设置代理

如果您只是需要代理来使用 Docker CLI 命令:

export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
export NO_PROXY=localhost,127.0.0.1

验证代理设置

检查代理是否生效:

docker info | grep -i proxy

注意事项

  1. 对于 HTTPS 代理,URL 仍可能使用 http:// 前缀
  2. NO_PROXY 设置可以排除不需要代理的地址
  3. 代理服务器可能需要认证,格式为:http://username:password@proxy.example.com:8080
  4. 在 Windows 或 macOS 上,可以通过 Docker Desktop 的 GUI 设置代理

希望这些方法能帮助您成功为 Docker 设置代理连接。