在 Ubuntu 系统上配置 Docker 通过代理服务器进行访问,通常涉及以下几个步骤:

1. 配置 Docker Daemon 使用代理

创建或编辑 Docker Daemon 的配置文件 /etc/systemd/system/docker.service.d/http-proxy.conf(如果目录和文件不存在,请先创建它们):

1
2
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

在文件中添加以下内容,替换 your-proxy-serveryour-proxy-port 为您的代理服务器地址和端口:

1
2
3
4
[Service]
Environment="HTTP_PROXY=http://your-proxy-server:your-proxy-port/"
Environment="HTTPS_PROXY=http://your-proxy-server:your-proxy-port/"
Environment="NO_PROXY=localhost,127.0.0.1"

保存并关闭文件。

2. 重新加载 Systemd 配置并重启 Docker 服务

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

3. 配置 Docker 客户端使用代理(可选)

如果您希望 Docker CLI 命令也通过代理进行访问,您需要配置环境变量。在用户的 Shell 配置文件中添加环境变量(例如,.bashrc, .bash_profile, .zshrc 等):

1
nano ~/.bashrc

添加以下内容:

1
2
3
export HTTP_PROXY="http://your-proxy-server:your-proxy-port/"
export HTTPS_PROXY="http://your-proxy-server:your-proxy-port/"
export NO_PROXY="localhost,127.0.0.1"

保存并关闭文件,然后刷新配置:

1
source ~/.bashrc

4. 验证配置

使用 Docker 拉取镜像以确认代理设置是否正确:

1
docker pull busybox

如果配置正确,Docker 将通过代理服务器访问互联网并拉取镜像。

通过上述步骤,您可以在 Ubuntu 系统上配置 Docker 通过代理服务器进行访问。如果代理服务器需要身份验证,您可以将用户名和密码包含在代理 URL 中,例如:

1
http://username:password@your-proxy-server:your-proxy-port/