2016-12-30 170 views
6

Windows上的Docker:如何使用容器IP从主机连接到容器?

  • 的Windows 10
  • 泊坞的Windows V. 1.12.5版本9503,它不依赖于boot2docker或VirtualBox的了。

我公司拥有一批在泊坞窗图像运行JBoss实例(172.18.0.2是一个数据库):

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

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

我还创建了一个桥接网络: 搬运工网络创建--subnet 172.18.0.0/24 bridged_network

目前,我已经建立了一个本地端口转发,这样的主机可以访问--driver桥使用前缀的各种服务(例如,当访问实例1的端口8080时,主机使用localhost:28080来连接)。但这很容易出错。

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

有Windows网络接口(类型:DockerNAT),IP为10.0.75.1,但可能我已经手动创建了它(不确定...已经尝试了很长一段时间了)。但是,当将容器的端口绑定到该设备时这是有用的,例如,码头运行... -p 10.0.75.1:8080:8080。然后我可以使用10.0.75.1:8080来调用该服务,但这对第二个容器无济于事。

我也试过使用Docker的主机网络设备,但那 a。似乎只适用于一台机器 b。我无法静态设置运行静态配置的JUnit测试所需的IP。 注意:我不能依赖网络DHCP在启动时分配IP,因为我频繁更换网络(并因此更改了DHCP),导致再次获得未固定的IP。

所以基本上我正在寻找一种方法来设置网络/容器的方式,我可以使用容器IP(例如172.18.0.3)调用容器提供的服务(例如在端口8080上)例如1)从主机使用172.18.0.3:8080。

+0

你知道,这不是泊坞窗的方式和休息的便携性。你似乎想要一个虚拟机,为什么不使用虚拟机呢? – user2105103

回答

0

你不行。 docker不是虚拟机,并且您无法通过IP地址访问Docker主机。

看到我在这里同样的问题:https://forums.docker.com/t/access-dockerized-services-via-the-containers-ip-address/21151

和我认识的是如何工作的,在这里:https://derickbailey.com/2016/08/29/so-youre-saying-docker-isnt-a-virtual-machine/

如果您需要使用容器托管,从本地主机的应用程序,暴露的端口与docker run

docker run -p 8080:8080 image_name

-p选项的应用程序,然后连接到localhost:8080˚F或服务

相关问题