加载中...

Docker 设置代理指引(Windows 系统)


背景

当我们在国内使用 docker 时,因为 GFW 的原因,有时会非常慢甚至连接不上。

一般 docker 命令会遇到以下两种异常情况:

error pulling image configuration: unexpected EOF

error pulling image configuration: Get "https //production.cloudflare.docker.com ..." : EOF

此时执行 ping 命令 ping production.cloudflare.docker.com 会丢包,即使配置了 hosts 强制指定 IP 也无济于事:

尝试配置代理

虽然本地已经搭建了 trojan 代理服务,但是在 Docker 中配置了代理服务依然无济于事,流量完全没有走代理:

配置系统全局代理一样不起作用,流量依然没有走代理:

原因

之所以配置代理无效,是因为 Windows 使用的 Docker 是基于 WSL2 的,其代理不能设置为 127.0.0.1 或 localhost,而应该设置为 Windows 的 WSL 网卡地址。

解决

在控制台执行 ipconfig 命令查看 WSL 网卡地址:

在 Docker 代理设置中更换为 WSL 的 IP 并重启 Docker :

此后可以看到流量终于走本地代理服务了:

docker 命令也能成功执行了:

但是这个方法不是一劳永逸的,因为 WSL 的 IP 每次重启电脑时都会重新分配,可以参考这里将其 IP 固定

参考文档


文章作者: EXP
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EXP !
  目录