docker无法通过宿主机IP访问容器内服务的问题解决
作者:SnWNH4
在宿主机上宿主机IP无法访问容器内的7861端口服务,但通过localhost可以访问,下面就来详细的介绍一下该问题的解决,具有一定的参考价值,感兴趣的可以了解一下
环境
windows11 + dockerdesktop + WSL 2
问题描述
贴主在容器内的7860端口起了一个服务,但是
- 宿主机无法通过 宿主机IP:7860 访问
- 宿主机可以通过 localhost:7860 访问
- 局域网内其他主机,可以通过 宿主机IP:7860 访问
原因&解决方案
之前折腾过Hyper-V虚拟机,WSL的环境有点乱
Docker Desktop在Windows上是跑在WSL2虚拟机里的,如果mirrored网络模式下,主机地址回环没有打开,则无法在虚拟机和宿主机之间双向访问;如果是NAT模式,则可以不勾选
wsl设置 - 网络 - 主机地址环回,勾选

之后重启wsl
wsl --shutdown
其他原因排查
在宿主机起一个服务,分别通过 ip 和 localhost 访问;若都正常,说明非宿主机环境问题
python -m http.server 7861 --bind 0.0.0.0
勾选docker desktop 的 Enable host networking,位置在设置 - Resources - Network;若仍然无法访问,证明非docker 客户端问题

若无次选项,请更新客户端
到此这篇关于docker无法通过宿主机IP访问容器内服务的文章就介绍到这了,更多相关docker无法通过宿主机访问内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
