局域网 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
修改变量:
重启生效:
再次拉取:
最后成功。