前言

一些镜像源(比如:registry.k8s.io、k8s.gcr.io等)由于某种原因无法下载的情况下,可以在Docker中配置代理来拉取。

解决方法

查看docker的systemd.service的配置文件位置:

执行systemctl status docker.service命令来查看:

# systemctl status docker.service 
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2023-04-25 16:24:00 CST; 1h 25min ago
     Docs: https://docs.docker.com
 Main PID: 1787 (dockerd)
    Tasks: 14
   Memory: 2.8G
   CGroup: /system.slice/docker.service
           └─1787 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

文中看到的配置是/usr/lib/systemd/system/docker.service。

修改配置文件

打开/usr/lib/systemd/system/docker.service,在[Service]域中添加以下参数:

Environment="HTTP_PROXY=http://proxy-addr:port/"   # 代理服务器地址
Environment="HTTPS_PROXY=http://proxy-addr:port/"  # https
Environment="NO_PROXY=localhost,127.0.0.1"         # 哪些地址不需要走代理

更新配置并重启服务

执行以下命令生效即可:

systemctl daemon-reload
systemctl restart docker.service

至此代理生效后,可以通过Docker来拉取。

查看环境变量

可以执行systemctl show --property=Environment docker查看当前配置的Environment参数