docker使用http_proxy配置代理

钢铁知识库,一个学习python爬虫、数据分析的知识库。人生苦短,快用python。

在内网服务器中,docker经常需要下载拉取镜像,但由于没有网络要么只能手动导入镜像包,又或者通过http_proxy代理到其它服务器下载。

image-20240121182254977

解决方法:

增加http-proxy.conf配置文件,正确配置好代理服务器后重启docker服务即可
NO_PROXY后面接不需要代理的仓库的域名或者IP,以英文逗号结尾

mkdir -p /etc/systemd/system/docker.service.d/http-proxy.conf << EOF
[Service]
Environment="HTTP_PROXY=http://10.124.130.19:123"
Environment="HTTPS_PROXY=http://10.124.130.19:123"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF

## 重载并重启服务
systemctl daemon-reload && systemctl restart docker

再次执行可以看到顺序拉取到镜像。

image-20240121183519577

另外:如果是containerd需要使用proxy代理,配置原理也是一样。

mkdir -p /etc/systemd/system/containerd.service.d/
tee /etc/systemd/system/containerd.service.d/http-proxy.conf <<EOF
[Service]
Environment="HTTP_PROXY=http://10.124.130.19:123"
Environment="HTTPS_PROXY=http://10.124.130.19:123"
EOF

## 重启生效
systemctl daemon-reload && systemctl restart containerd

参考链接:

https://docs.docker.com/config/daemon/systemd/