WSL2+Windows11环境下无法通过localhost/127.0.0.1访问Docker容器应用的求助
WSL2+Windows11环境下无法通过localhost/127.0.0.1访问Docker容器应用的求助
各位好,最近在Windows11+WSL2(Ubuntu)的环境里踩了个坑,折腾半天没解决,来请教下大家:
我在WSL2里启动了一个Docker容器应用,端口映射配置的是0.0.0.0:8080->8080/tcp,容器状态看起来完全正常(docker ps显示已经稳定运行26分钟)。但在WSL的bash终端里,用curl localhost:8080或者127.0.0.1访问时,总是报错:
curl: (56) Recv failure: Connection reset by peer
但如果换成Windows PowerShell里ipconfig查到的物理网卡IP(比如我这里的192.168.0.241),在WSL bash里用curl 192.168.0.241:8080就能正常拿到应用的返回结果:
{"uptime":1145.711749106,"message":"OK","timestamp":1720939890098}
还有个更奇怪的现象:我的WSL子系统和Windows主机的主机名是相同的。在WSL bash里用curl <hostname>:8080访问会失败,但在Windows的PowerShell里用完全一样的命令,却能正常返回200状态码。
最让我费解的是,这套配置在另一台同样是Windows11+WSL2的电脑上完全正常,没有任何访问问题。
我已经确认过容器运行状态没问题,docker ps的输出如下:
docker ps <container_id> <image_name> "docker-entrypoint.s…" 26 minutes ago Up 26 minutes 0.0.0.0:8080->8080/tcp ...
有没有朋友遇到过类似的情况?或者能给我一些排查的思路吗?麻烦各位了!
备注:内容来源于stack exchange,提问作者Patrick Horne




