以下文章由deepseek-chat生成

在使用 Docker 下载镜像时,如果遇到网络问题(例如无法访问 Docker Hub),可以通过配置代理来解决。以下是配置代理的步骤:

1. 配置 Docker Daemon 代理

Docker Daemon 是 Docker 的后台服务,负责管理容器、镜像等。你可以通过配置 Docker Daemon 的代理来让 Docker 使用代理下载镜像。

方法 1:通过环境变量配置

1. 编辑 Docker 的 systemd 服务配置文件:

sudo systemctl edit docker

2. 在打开的编辑器中,添加以下内容:

[Service]
Environment="HTTP_PROXY=http://your-proxy-server:port"
Environment="HTTPS_PROXY=http://your-proxy-server:port"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.example.com"

- HTTP_PROXYHTTPS_PROXY 是代理服务器的地址和端口。

- NO_PROXY 是不通过代理访问的地址列表(例如本地地址或私有镜像仓库)。

3. 保存并退出编辑器。

4. 重新加载 systemd 配置并重启 Docker 服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

方法 2:通过 Docker 配置文件配置

1. 编辑 Docker 的配置文件 /etc/docker/daemon.json

sudo nano /etc/docker/daemon.json

2. 添加以下内容:

{
  "proxies": {
    "default": {
      "httpProxy": "http://your-proxy-server:port",
      "httpsProxy": "http://your-proxy-server:port",
      "noProxy": "localhost,127.0.0.1,docker-registry.example.com"
    }
  }
}

3. 保存并退出编辑器。

4. 重启 Docker 服务:

sudo systemctl restart docker

2. 配置 Docker Client 代理

Docker Client 是用户与 Docker Daemon 交互的命令行工具。你可以通过配置环境变量来让 Docker Client 使用代理。

1. 在终端中设置环境变量:

export HTTP_PROXY=http://your-proxy-server:port
export HTTPS_PROXY=http://your-proxy-server:port
export NO_PROXY=localhost,127.0.0.1,docker-registry.example.com

2. 这些环境变量只对当前终端会话有效。如果你希望永久生效,可以将这些环境变量添加到你的 shell 配置文件(如 ~/.bashrc~/.zshrc)中。

3. 验证代理配置

配置完成后,你可以通过以下命令验证代理是否生效:

docker pull hello-world

如果代理配置正确,Docker 应该能够成功下载镜像。

4. 其他注意事项

  • 如果代理服务器需要认证,可以在代理 URL 中包含用户名和密码,例如:

http://username:password@your-proxy-server:port
  • 如果你使用的是私有镜像仓库,确保在 NO_PROXY 中包含这些仓库的地址,以避免代理干扰。

通过以上步骤,你应该能够成功配置 Docker 的代理,解决镜像下载的网络问题。