当我运行运行窗口停靠容器并向主机公开端口的命令时,我可以对容器进行平分并连接到它。问题是,我现在想要通过一个超VVM通过虚拟交换机连接到主机以太网网络。
在超级V中没有桥接适配器的选项,只有在Virtualbox中。默认情况下,Windows docker容器网络驱动程序也是NAT,而不是Linux容器中的桥。
我尝试过覆盖网络驱动程序来连接到Docker,但Windows容器中也不支持这一点。我还尝试使用指定的网络目的地、子网掩码和网关向Windows路由表添加静态路由,但也没有成功。
我没有尝试过的唯一选择是端口映射/转发,但我不是一个网络高手,我可以在网上找到有关Hyper端口映射的文档,涉及到带有虚拟交换机的NAT配置。我不知道下一步该做什么。
docker run --rm --name rabbitmqtest -p 15672:15672 -p 5672:5672 --ip 192.168.130.4
5 -t imgtest containerNetwork 发布于 2019-04-23 06:43:30
当前版本的Hyper-V创建了一个默认交换机,连接到默认网络,客户V使用该开关通过NAT连接到主机网络。
您可以通过ipconfig命令从来宾VM获取网络详细信息。例如,我现有的一台机器:
IPv4 Address. . . . . . . . . . . : 192.168.131.236
Subnet Mask . . . . . . . . . . . : 255.255.255.240
Default Gateway . . . . . . . . . : 192.168.131.225默认网关基本上是主机,因此您应该能够直接访问该IP地址上的映射端口。
例如,在我的机器上,我还在容器中运行Elastic,将Kibana端口映射为32771。
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)。
https://stackoverflow.com/questions/52613893
复制相似问题