前言
一些镜像源(比如: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参数