求助:同网络机器无法连接Windows主机Docker中的Tomcat容器
问题:Windows主机Docker容器中Tomcat无法被同网络机器访问
开发需求下,需要从同网络内其他机器连接Windows主机上Docker运行的Tomcat容器,但遇到以下问题:
- 容器已配置端口发布,本地通过
localhost可正常访问应用 - 尝试通过主机IP或网络名称访问时,连接被拒绝
- 在Windows主机执行
netstat命令,发现Tomcat的8080端口仅监听127.0.0.1:8080和[::1]:8080,无绑定主机IP或0.0.0.0的监听条目
已尝试的操作
- 容器启动命令:
docker network create openldap --driver bridge docker run -d --rm --name openldap -p 1389:1389 --network openldap local-openldap:latest docker run -p 8080:8080 --env-file local-env --network openldap local-tomcat:latest - 修改Tomcat的
server.xml,显式设置监听地址为0.0.0.0:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" address="0.0.0.0"/> - 运行容器时显式指定端口绑定
0.0.0.0,执行docker port命令后返回:8080/tcp -> 0.0.0.0:8080 8080/tcp -> :::8080 - 尝试让Tomcat容器脱离自定义桥接网络单独运行,问题依旧
- 启动非容器化的本地Tomcat实例,可正常被远程访问,排除主机网络本身问题
问题根源
经排查,该问题的核心原因是使用Rancher Desktop并以dockerd作为运行时的场景特性导致。
内容的提问来源于stack exchange,提问作者user4386028
相关产品推荐
相关产品推荐

