wsl2已开启代理, 但是依旧无法拉取镜像

wsl2已开启代理, 但是依旧无法拉取镜像, 配置了docker/config.json也没用, 是漏掉什么配置了吗

1 个赞

试试这个,国内的 Docker Hub 镜像加速器,由国内教育机构与各大云服务商提供的镜像加速服务 | Dockerized 实践 https://github.com/y0ngb1n/dockerized · GitHub

docker 不走命令行代理的

可能要全局代理那种,tun模式

常规话题快问快答

1 个赞

docker命令行代理也不走的,你改一下mirror吧

1 个赞

自己搭了个镜像, 配置走镜像就好了

docker desktop 应用里不就可以配置代理吗?对 wsl2 也生效的呀

系统代理的话命令行是不走的,需要单独设置下环境变量,或者用tun模式

win11 可以将 wsl2 网络设置为镜像模式,这个模式下 wsl 会自动应用主机的代理设置,还有个选项是DNS隧道什么的。总之我开启以后使用起来很顺心,大部分场景不需要再设置环境变量等

1 个赞

debian/ubuntu 仅供参考

sudo mkdir -p /etc/systemd/system/docker.service.d 
sudoedit /etc/systemd/system/docker.service.d/proxy.conf
[Service] 
Environment="HTTP_PROXY=socks5h://proxy:port/" 
Environment="HTTPS_PROXY=socks5h://proxy:port/" 
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
sudo systemctl daemon-reload
sudo systemctl restart docker
1 个赞

不行, 我搭了docker镜像库才行, 而且还有坑, dockerfile里面的add等类似curl的操作还要配置

全部走代理需要两个一起配置,上面那个是dockerd走代理,这个是容器走代理

daemon.json:

{ 
	"proxies": { 
		 "default": { 
			 "httpProxy": "http://proxy.example.com:8080", 
			 "httpsProxy": "http://proxy.example.com:8080", 
			 "noProxy": "localhost,127.0.0.1,.example.com" 
		 } 
	} 
}

其实文档已经说得很清楚怎么配代理了

你应该在 docker desktop 这个windows 应用里面配置代理,不要在wsl里面配置。

顺便,那个 daocloud 的镜像站是白名单,有些xx镜像是没有的。

已经解决了, 是我的一个配置改漏,我没用使用 docker desktop客户端