给docker设置代理以拉取镜像

2024年6月开始,国内所有的 docker 镜像仓库都被上层强制停服了,导致我们在国内无法通过 docker pull 拉取 docker 镜像。没办法,只能给 docker 环境上代理。你需要事先准备好一个在局域网中可用的 http 代理,这个我就不赘述了。

因为镜像的拉取和管理都是 docker daemon 的职责,所以我们要让 docker daemon 知道代理服务器的存在。而 docker daemon 是由 systemd 管理的,所以我们要从 systemd 配置入手。docker daemon 使用 HTTP_PROXY, HTTPS_PROXY, 和 NO_PROXY 三个环境变量配置代理服务器,但是你需要在 systemd 的文件里配置环境变量。

步骤:

1.创建 dockerd 相关的 systemd 目录,这个目录下的配置将覆盖 dockerd 的默认配置
$ sudo mkdir -p /etc/systemd/system/docker.service.d

2.新建配置文件 /etc/systemd/system/docker.service.d/http-proxy.conf,这个文件中将包含环境变量
[Service]
Environment="HTTP_PROXY=http://192.168.50.18:1072"
Environment="HTTPS_PROXY=http://192.168.50.18:1072"

3.重新加载 docker daemon 配置文件,并重启 docker
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

最后,通过 sudo systemctl show --property=Environment docker 检查确认环境变量是否已经正确配置。也可以通过 docker info 查看到 HTTP Proxy 和 HTTPS Proxy 结果。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注