求教:如何访问 wsl2 中的 docker 里的服务?

46 天前
 amlee
我已经将 wsl2 的 networkingMode 改成了 mirrored ,docker 是直接装在 wsl2 里面的。

在 wsl2 中直接启动的服务,可以从 windows 访问到。
跑在 docker 里面的服务,可以从 wsl2 直接访问,但是从 windows 就无法访问。

 docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
5882e24d8cbb ollama/ollama "/bin/ollama serve" 17 minutes ago Up 7 minutes 0.0.0.0:9394->11434/tcp, :::9394->11434/tcp ollama

比如上面的 ollama 服务,我在 wsl2 里面用 curl 可以访问 9394 端口,但是从 windows 访问 localhost 的端口就不行,是不是我的 wsl 配置有问题?
896 次点击
所在节点    问与答
10 条回复
proxytoworld
46 天前
wsl2 有单独的 IP
amlee
46 天前
@proxytoworld 设置了 mirrored 之后,看到的 wsl2 的 ip 和 window ip 是相同的。另外,用 ip 也无法访问
shitshit666
46 天前
有没有修改过 wsl 的配置文件,在 Windows 的 home 目录里面有个 wsl 配置文件,删掉试试,如果有的话
lxy42
46 天前
我之前也遇到过这个问题, 在 WSL 执行 `iptables -t nat -I PREROUTING -i loopback0 -j RETURN` 试试
amlee
46 天前
@lxy42 是这个原因哎,谢谢了。一直搞不懂 iptables 用法,我去问问 gpt
Baymaxbowen
46 天前
我好像没设置过什么一直都能访问 wsl 内部的 docker 服务
caixiaomao
46 天前
wsl2 可以直接用 windows docker 的
leconio
46 天前
我用 hyper 桥接了下网卡,wsl2 就有了单独 ip 。配好 sshd 就能远程维护 wsl2 了。但是我还没解决睡眠问题,虽然跑着服务,但会自动睡眠。蹲一个启动 wsl2 时间不睡的解决方式。
mcluyu
46 天前
装 docker desktop 好像不需要设置啥, 直接就能访问,wsl 里同样可以操作
klesh
46 天前
好像在 /etc/docker/daemon.json 加上 "iptables": false 也行,原理不明 😂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1063343

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX