配置 Docker 守护进程使用代理
1.创建或编辑 Docker 配置文件目录
2.创建或编辑代理配置文件
3.重新加载系统守护进程并重启 Docker
4.验证代理设置
5.使用 docker pull 拉取镜像,验证代理设置
步骤 1:创建或编辑 Docker 配置文件目录
Docker 的配置文件目录位于/etc/systemd/system/docker.service.d,如果这个目录不存在,需要首先创建它。执行以下命令:mkdir -p /etc/systemd/system/docker.service.d
步骤 2:创建或编辑 http-proxy.conf 文件
接下来,我们需要创建或编辑 http-proxy.conf 文件:
vim /etc/systemd/system/docker.service.d/http-proxy.conf,在文本编辑器(如 nano)中打开文件后,添加以下内容:
[Service] Environment="HTTP_PROXY=http://10.100.100.1:20172" Environment="HTTPS_PROXY=http://10.100.100.1:20172" Environment="NO_PROXY=localhost,127.0.0.1"
此配置文件内容的含义如下:
- HTTP_PROXY:设置 HTTP proxy的地址和端口。
- HTTPS_PROXY:设置 HTTPS proxy的地址和端口。
- NO_PROXY:定义不需要走proxy的地址,以逗号分隔。
保存文件并退出编辑器。
步骤 3:重新加载系统守护进程并重启 Docker
保存并关闭 http-proxy.conf 文件后,需要重新加载 systemd 守护进程,并重启 Docker 以使配置生效。执行以下命令:
systemctl daemon-reload systemctl restart docker
步骤 4:验证proxy设置
为了确认proxy设置是否正确生效,可以使用以下命令查看 Docker 服务的环境变量:
sudo systemctl show --property=Environment docker
你应该会看到输出中包含刚才设置的 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY 变量。例如:
Environment=HTTP_PROXY=http://10.100.100.1:20172 Environment=HTTPS_PROXY=http://10.100.100.1:20172 Environment=NO_PROXY=localhost,127.0.0.1
步骤 5:使用 docker pull 拉取镜像
一旦代理设置完成并生效,你可以尝试使用 Docker 代理拉取镜像。例如,执行以下命令:
docker pull pytorch/pytorch:1.13.1-cuda11.6-cudnn8-devel
此命令将通过配置的proxy服务器来拉取所需的 Docker 镜像。
总结
通过以上步骤,可以成功配置 Docker 守护进程使用 HTTP 和 HTTPS 代理。这在受限网络环境或需要通过代理服务器访问 Docker 镜像仓库时,特别有用。通过 docker pull 验证镜像的拉取,可以确保代理配置已经正确生效。