为Docker Pull 配置代理

  1. 配置Docker守护进程(Docker Daemon)使用代理:

你需要在 Docker 守护进程的配置文件中设置代理。配置文件的位置取决于你的操作系统。

  • Linux:
    编辑或创建 /etc/systemd/system/docker.service.d/http-proxy.conf 文件,添加以下内容:
1
2
3
[Service]
Environment="HTTP_PROXY=http://your-proxy-server:your-proxy-port/"
Environment="HTTPS_PROXY=https://your-proxy-server:your-proxy-port/"

如果需要忽略某些地址(例如本地地址),可以添加 NO_PROXY 环境变量:

1
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
  • Windows:
    编辑或创建 C:\ProgramData\Docker\config\daemon.json 文件,添加以下内容:
1
2
3
4
5
6
7
8
9
{
"proxies": {
"default": {
"httpProxy": "http://your-proxy-server:your-proxy-port",
"httpsProxy": "https://your-proxy-server:your-proxy-port",
"noProxy": "localhost,127.0.0.1,docker-registry.somecorporation.com"
}
}
}
  • macOS:
    打开 Docker Desktop 应用,进入 Preferences -> Resources -> Proxies,然后设置 HTTP 和 HTTPS 代理。
  1. 重启Docker守护进程:

在配置文件更新后,你需要重启 Docker 守护进程以使更改生效。

  • Linux:

    1
    2
    sudo systemctl daemon-reload
    sudo systemctl restart docker
  • Windows:
    重新启动 Docker 服务。你可以通过服务管理器或者执行以下命令:

    1
    Restart-Service docker
  • macOS:
    配置完成后,Docker Desktop 会自动应用更改并重启。

  1. 验证配置:

通过 docker info 命令查看代理配置是否正确应用:

1
docker info

你应该能在输出中看到 HTTP ProxyHTTPS Proxy 设置。

完成这些步骤后,Docker 在执行 docker pull <image> 时会通过你配置的代理服务器进行连接。

1. 配置系统级别代理

这适用于所有用户的代理设置,修改/etc/systemd/system/docker.service.d/http-proxy.confhttps-proxy.conf文件。

  • 创建或编辑/etc/systemd/system/docker.service.d/http-proxy.conf文件,添加以下内容:
1
2
[Service]
Environment="HTTP_PROXY=http://<代理服务器地址>:<端口>"
  • 创建或编辑/etc/systemd/system/docker.service.d/https-proxy.conf文件,添加以下内容:
1
2
[Service]
Environment="HTTPS_PROXY=http://<代理服务器地址>:<端口>"

如果需要设置不通过代理的地址,可以添加NO_PROXY变量,例如:

1
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"

2. 配置用户级别代理

这仅适用于当前用户的代理设置,编辑~/.docker/config.json文件。

  • 创建或编辑~/.docker/config.json文件,添加以下内容:
1
2
3
4
5
6
7
8
9
{
"proxies": {
"default": {
"httpProxy": "http://<代理服务器地址>:<端口>",
"httpsProxy": "http://<代理服务器地址>:<端口>",
"noProxy": "localhost,127.0.0.1,docker-registry.somecorporation.com"
}
}
}

3. 重新启动Docker服务

配置文件修改完成后,需要重新启动Docker服务以使配置生效。

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

4. 验证代理设置

可以通过以下命令来验证代理是否配置成功:

1
docker info

在输出中,应该能看到代理配置项。

通过上述步骤,你可以为Docker的pull命令配置代理,从而通过代理服务器进行镜像的拉取。