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://10.0.0.3:7890"
Environment="HTTPS_PROXY=http://10.0.0.3:7890"
3.重新加载 docker daemon 配置文件,并重启 docker
sudo systemctl daemon-reload
sudo systemctl restart docker
最后,通过 sudo systemctl show --property=Environment docker
检查确认环境变量是否已经正确配置。也可以通过 docker info
查看到 HTTP Proxy 和 HTTPS Proxy 结果。