繁体   English   中英

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

[英]Connect to docker container on windows host from another machine

出于开发目的,我需要能够从 same.network 上的其他机器连接到在 Windows 主机上运行 tomcat 的容器。 我在 bridge.network 上本地运行两个容器,并在运行它们时从每个容器发布端口。 这些应用程序可通过localhost访问,但我无法通过主机的网络名称或 IP 连接到它们,连接被拒绝。 Windows 主机上的 Running.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 容器而不加入我创建的 bridge.network 但是什么都没有改变。 为了尝试隔离到 docker,我运行了一个本地 tomcat 实例,不在容器中并且可以访问。

当 docker 文档读给我听时,我感觉好像缺少一些非常基本的东西,就像发布端口选项应该默认执行此操作一样,并且我没有从我一直在尝试的各种搜索中获得任何相关的匹配项。 认为我问错了问题。

解决后的其他详细信息:此问题是在使用 dockerd 作为运行时运行 rancher 桌面时遇到的,结果证明这是问题的根源。

万一其他人发现了这个,事实证明这是一个最近已修复的 rancher-desktop 问题https://github.com/rancher-sandbox/rancher-desktop/issues/2677

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM