Docker系列---【如何为 Docker 配置全局代理?】
1.问题
我在windows11上用hyper-v虚拟了一台centos7的服务器,在服务器使用docker pull拉镜像的时候,配置的加速镜像源里没有,然后自动去中央镜像库里拉,然后就报超时。然后我打开魔法,然后通过浏览器去(dockerhub)[https://hub.docker.com/]官网搜索,可以搜到。显然是我的服务器不能连接中央仓库导致的,因此,为了解决这个情况,我就给docker设置代理,这样拉取镜像的时候就不会再超时了。
2.解决方案
-
1.确定宿主机 IP
在虚拟机内部,你需要访问宿主机的 IP 地址。在 Hyper-V 的 NAT 模式(通常对应 192.168.137.x 网段)下,宿主机的 IP 通常是网关地址。- 在虚拟机中执行:
ip route show | grep default或者使用ipconfig - 你会看到类似
default via 192.168.137.1 dev eth0的输出,其中 192.168.137.1 就是宿主机的 IP,联网那个网卡的ip,例如wlan的。
- 在虚拟机中执行:
-
2.配置 Docker 守护进程代理
在虚拟机中,创建或编辑 Docker 的系统服务目录:sudo mkdir -p /etc/systemd/system/docker.service.d sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf -
3.填入代理配置
在文件中添加以下内容(注意将 IP 替换为你第一步查到的宿主机 IP):[Service] Environment="HTTP_PROXY=http://192.168.137.1:7890" Environment="HTTPS_PROXY=http://192.168.137.1:7890" Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"注意:即使是 HTTPS_PROXY,通常代理协议也是填
http://,除非你的代理服务器明确支持 https 协议连接。 -
4.允许宿主机代理被局域网连接
重要步骤: 你的 Windows 代理软件(如 ***、v2rayN 等)默认通常只监听127.0.0.1。你需要进入代理软件的设置,开启 “允许来自局域网的连接” (Allow LAN)。- 如果不开启此选项,虚拟机访问
192.168.137.1:7890会被拒绝。
- 如果不开启此选项,虚拟机访问
-
5.重载并重启 Docker
sudo systemctl daemon-reload sudo systemctl restart docker -
6.验证并拉取
执行docker info,在输出的底部应该能看到 HTTP Proxy 的配置信息。然后再次尝试拉取镜像。
愿你走出半生,归来仍是少年!
浙公网安备 33010602011771号