Bootstrap

局域网 docker pull 使用代理拉取镜像

局域网 docker pull 使用代理拉取镜像

1、需求:

  • 我有win主机,上面装有代理可连接dockerhub;
  • 我另有linux主机,直接pull因墙失败,想走win的代理访问dockerhub拉镜像;
  • 两台主机在同一个局域网中;

2、准备代理:
在这里插入图片描述
保证:

  • win中代理软件监听某个端口(此处clash,端口7890);
  • win中代理软件已连接XXX;
  • win中代理开启Allow LAN;
    在这里插入图片描述
    如不开启Allow LAN,则代理只监听win主机127.0.0.1。
    (代理只监听win的127,当然无法收局域网主机的TCP建链请求)

3、配置docker

mkdir -p /etc/systemd/system/docker.service.d
vi /etc/systemd/system/docker.service.d/http-proxy.conf

添加内容:

[Service]
Environment=“HTTP_PROXY=http://10.1.96.170:7890”
Environment=“HTTPS_PROXY=https://10.1.96.170:7890”

其中,10.1.96.170是win在局域网的IP,7890是前面提到的代理监听端口。

在这里插入图片描述

4、重启docker

systemctl daemon-reload
systemctl restart docker

在这里插入图片描述

5、查看docker代理

docker info | grep -i proxy

在这里插入图片描述
6、尝试docker pull

docker pull hello-world

在这里插入图片描述
嗯,出现错误。

Error response from daemon: Get https://registry-1.docker.io/v2/: proxyconnect tcp: EOF

7、谷歌:

https://stackoverflow.com/questions/64137423/docker-error-response-from-daemon-get-https-registry-1-docker-io-v2-proxyc

在这里插入图片描述
修改变量:
在这里插入图片描述
重启生效:
在这里插入图片描述
再次拉取:
在这里插入图片描述

最后成功。

;