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

2024-08-07 23:00:29 +08:00
 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 配置有问题?
1727 次点击
所在节点    问与答
10 条回复
proxytoworld
2024-08-07 23:04:17 +08:00
wsl2 有单独的 IP
amlee
2024-08-07 23:23:22 +08:00
@proxytoworld 设置了 mirrored 之后,看到的 wsl2 的 ip 和 window ip 是相同的。另外,用 ip 也无法访问
shitshit666
2024-08-08 00:06:12 +08:00
有没有修改过 wsl 的配置文件,在 Windows 的 home 目录里面有个 wsl 配置文件,删掉试试,如果有的话
lxy42
2024-08-08 00:17:34 +08:00
我之前也遇到过这个问题, 在 WSL 执行 `iptables -t nat -I PREROUTING -i loopback0 -j RETURN` 试试
amlee
2024-08-08 01:28:00 +08:00
@lxy42 是这个原因哎,谢谢了。一直搞不懂 iptables 用法,我去问问 gpt
Baymaxbowen
2024-08-08 07:39:05 +08:00
我好像没设置过什么一直都能访问 wsl 内部的 docker 服务
caixiaomao
2024-08-08 08:34:16 +08:00
wsl2 可以直接用 windows docker 的
leconio
2024-08-08 08:42:08 +08:00
我用 hyper 桥接了下网卡,wsl2 就有了单独 ip 。配好 sshd 就能远程维护 wsl2 了。但是我还没解决睡眠问题,虽然跑着服务,但会自动睡眠。蹲一个启动 wsl2 时间不睡的解决方式。
mcluyu
2024-08-08 09:36:04 +08:00
装 docker desktop 好像不需要设置啥, 直接就能访问,wsl 里同样可以操作
klesh
2024-08-08 10:32:19 +08:00
好像在 /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