Skip to main content

docker 代理服务器配置

作草分茶About 1 min

docker 代理服务器配置

场景

我用 vmware 装了三台虚拟机用于K8s学习,但是拉取镜像时太慢了,查看原因是因为docker无法拉取镜像。然后我有回到宿主机去用docker试了一下,是没有问题的,因为我的宿主机配置了代理。

那么怎么让虚拟机的网络用到宿主机的代理地址呢?

查看虚拟机的IP地址,是172.16.213.32,然后查看宿主机同网段的ip地址是172.16.213.1,宿主机代理端口是7890

设置dockerd代理

在执行docker pull时,是由守护进程dockerd来执行。 因此,代理需要配在dockerd的环境中。 而这个环境,则是受systemd所管控,因此实际是systemd的配置。

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/proxy.conf

在这个proxy.conf文件(可以是任意*.conf的形式)中,添加以下内容:

[Service]
Environment=“HTTP_PROXY=172.16.213.1:7890"
Environment="HTTPS_PROXY=172.16.213.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"

重启生效
代理配置完成后,dockerd代理的修改比较特殊,它实际上是改systemd的配置,因此需要重载systemd并重启dockerd才能生效。使得代理生效:

sudo systemctl daemon-reload
sudo systemctl restart docker

检查代理配置:

systemctl show --property=Environment docker

输出如下代理信息,说明代理生效了

Environment=HTTPS_PROXY=172.16.213.1:7890 NO_PROXY=localhost,127.0.0.1