首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从超级VM连接到windows坞容器的外露端口?

如何从超级VM连接到windows坞容器的外露端口?
EN

Stack Overflow用户
提问于 2018-10-02 18:00:51
回答 1查看 3K关注 0票数 2

当我运行运行窗口停靠容器并向主机公开端口的命令时,我可以对容器进行平分并连接到它。问题是,我现在想要通过一个超VVM通过虚拟交换机连接到主机以太网网络。

在超级V中没有桥接适配器的选项,只有在Virtualbox中。默认情况下,Windows docker容器网络驱动程序也是NAT,而不是Linux容器中的桥。

我尝试过覆盖网络驱动程序来连接到Docker,但Windows容器中也不支持这一点。我还尝试使用指定的网络目的地、子网掩码和网关向Windows路由表添加静态路由,但也没有成功。

我没有尝试过的唯一选择是端口映射/转发,但我不是一个网络高手,我可以在网上找到有关Hyper端口映射的文档,涉及到带有虚拟交换机的NAT配置。我不知道下一步该做什么。

代码语言:javascript
复制
docker run --rm --name rabbitmqtest -p 15672:15672 -p 5672:5672 --ip 192.168.130.4
5 -t imgtest containerNetwork 
EN

回答 1

Stack Overflow用户

发布于 2019-04-23 06:43:30

当前版本的Hyper-V创建了一个默认交换机,连接到默认网络,客户V使用该开关通过NAT连接到主机网络。

您可以通过ipconfig命令从来宾VM获取网络详细信息。例如,我现有的一台机器:

代码语言:javascript
复制
IPv4 Address. . . . . . . . . . . : 192.168.131.236
Subnet Mask . . . . . . . . . . . : 255.255.255.240
Default Gateway . . . . . . . . . : 192.168.131.225

默认网关基本上是主机,因此您应该能够直接访问该IP地址上的映射端口。

例如,在我的机器上,我还在容器中运行Elastic,将Kibana端口映射为32771。

代码语言:javascript
复制
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                                                NAMES
9fa6fe19a911        sebp/elk:latest     "/usr/local/bin/star…"   16 minutes ago      Up 16 minutes       0.0.0.0:32772->5044/tcp, 0.0.0.0:32771->5601/tcp, 0.0.0.0:32770->9200/tcp, 0.0.0.0:32769->9300/tcp   elk

要从客户VM访问Kibana,我只需浏览到http://192.168.131.225:32771/

在您的例子中,您应该能够在http://192.168.<your gateway>:15672/上从Hyper-V客户VM访问坞容器的http://192.168.<your gateway>:15672/ web UI。

编辑:您可能还需要删除特定的IP地址绑定,以便将端口映射到所有接口上,包括Hyper默认网络。

注意:Hyper还支持内部和共享(桥接)网络,这也可以以类似的方式使用。早期版本的Hyper-V没有默认NAT (但您可以使用Windows Internet连接共享来创建NAT)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52613893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档