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 !
 上一篇
解决 Windows 10 启动 Docker 时端口被占用问题 解决 Windows 10 启动 Docker 时端口被占用问题
背景由于 Windows 的 Docker 是依赖 Hyper-V 的,但在启用 Hyper-V 后,会产生各种端口莫名被占用的问题。 例如启动 Docker 时会报错(端口随机在一个小范围内波动的): Error starting use
2022-11-20
下一篇 
rAthena 开发环境搭建指引手册 rAthena 开发环境搭建指引手册
主要针对 Windows 环境如何使用 Visual Studio 编译并运行,官方说明比较简略,刚接触的同学只能靠自己摸索,这篇文章记录了完整的搭建过程以及中途可能会遇到的坑,仅供参考 ...
2022-11-19
  目录