从另一台计算机连接到windows主机上的docker容器



出于开发目的,我需要能够从同一网络上的其他机器连接到Windows主机上运行tomcat的容器。我在网桥网络上本地运行两个容器,并在运行它们时发布每个容器的端口。应用程序可以通过localhost访问,但我无法通过主机的网络名称或IP连接到它们,连接被拒绝。在Windows主机上运行netstat时,我看到tomcat端口正在侦听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

我已经尝试将0.0.0.0地址显式添加到server.xml 中的Tomcat配置中

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
address="0.0.0.0"/>

我尝试在运行容器时将0.0.0.0地址显式添加为发布选项的一部分。我为容器运行了docker端口,看到了条目8080/tcp -> 0.0.0.0:80808080/tcp -> :::8080,我尝试在不加入我创建的网桥网络的情况下独立运行tomcat容器,但没有什么不同。为了尝试隔离到docker,我运行了一个本地tomcat实例,而不是在容器中,它是可以访问的。

我觉得我缺少了一些非常基本的东西,因为docker文档向我读到发布端口选项默认情况下应该这样做,而且我一直在尝试的各种搜索都没有得到任何相关的点击。我想我问错了问题。

解决后的其他细节:这个问题是在使用dockerd作为运行时运行rancher desktop时遇到的,这就是问题的根源。

如果其他人发现了这个问题,就会发现这是最近修复的牧场主桌面问题https://github.com/rancher-sandbox/rancher-desktop/issues/2677.

安装了最新的开发版本,它还没有出现在发布页面上,这就解决了这个问题。

最新更新