加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-14 04:09:17 所属栏目:Windows 来源:网络整理
导读:我有 Windows 10 Docker for Windows V. 1.12.5 Rev. 9503,不再依赖boot2docker或VirtualBox了. 我有很多在Docker镜像中运行的JBoss实例(172.18.0.2是一个数据库): 实例1:名称:jboss-eap,IP:172.18.0.3 实例2:名称:jboss-eap-arquillian,IP:172.18.0.
我有

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

我有很多在Docker镜像中运行的JBoss实例(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网络接口(类型:DockerNAT),IP 10.0.75.1,但我可能手动创建它(不确定……现在已经尝试了很长时间).但是,当将容器的端口绑定到此设备时,这很有用,例如码头运行… -p 10.0.75.1:8080:8080.然后我可以使用10.0.75.1:8080调用该服务,但这对第二个容器没有帮助.

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

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

在docker for windows上你可以使用地址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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读