gpt4 book ai didi

windows - Windows 上的 Docker : how to connect to container from host using container IP?

转载 作者:IT老高 更新时间:2023-10-28 21:20:21 25 4
gpt4 key购买 nike

我有

  • Windows 10
  • Docker for Windows V. 1.12.5 Rev. 9503,不再依赖 boot2docker 或 VirtualBox。

我有许多 JBoss 实例在 Docker 镜像中运行(172.18.0.2 是一个数据库):

  • 实例 1:名称:jboss-eap,IP:172.18.0.3
  • 实例 2:名称:jboss-eap-arquillian,IP:172.18.0.4

应该同时运行。每个 JBoss 实例都导出例如它的 8787、8080 和 8443 端口。

我还创建了一个桥接网络:docker network create --driver bridge --subnet 172.18.0.0/24 bridged_network

目前,我已经设置了本地端口转发,以便主机可以使用前缀访问各种服务(例如,访问实例 1 的端口 8080 时,主机使用 localhost:28080 进行连接)。但这很容易出错。

现在,我想使用容器的 IP 从主机访问这些端口,例如调用 172.18.0.4:8080(下一步:使用主机名:jboss-eap-arquillian:8080)。虽然这在容器之间顺利运行,但我无法将其设置为从主机连接。

有 Windows 网络接口(interface)(类型:DockerNAT),IP 为 10.0.75.1,但可能是我手动创建的(不确定......现在已经尝试了很长时间)。但这在将容器的端口绑定(bind)到此设备时很有帮助,例如 docker 运行...-p 10.0.75.1:8080:8080。然后我可以使用 10.0.75.1:8080 调用服务,但这对第二个容器没有帮助。

我也尝试过使用 Docker 的主机网络设备,但是一个。似乎只适用于一台机器湾。我无法静态设置运行静态配置的 JUnit 测试所需的 IP。注意:我不能依赖网络 DHCP 在启动时分配 IP,因为我经常更改我的网络(因此 DHCP),导致再次出现不固定的 IP。

所以基本上我正在寻找一种方法来设置网络/容器,以便我可以使用容器 IP(例如 172.18.0.3 为实例 1) 从使用 172.18.0.3:8080 的主机。

最佳答案

在 Windows 的 docker 上,您可以使用地址 10.0.75.1:8080,但您需要配置防火墙,更好的方法是使用地址 10.0.75.2:8080,

对于这两个地址,您必须在运行容器时发布您的端口

docker run -p 8080:8080 image_name

更多信息 https://github.com/docker/for-win/issues/334#issuecomment-297030101

关于windows - Windows 上的 Docker : how to connect to container from host using container IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41400043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com