Hyper-V VM无法访问Docker容器,例如RabbitMQ

环境

我的开发机器是使用Hyper-V托pipe的VM,操作系统是Windows 8.1。 Hyper-V在我的本地机器上运行,操作系统是Windows 10.在同一台主机上运行的是Docker容器中的RabbitMQ,为了使RabbitMQ运行,我使用了以下命令: docker run -d -e RABBITMQ_NODENAME=bmorabbit --name rabbitmq -p 15672:15672 micdenny/rabbitmq-windows我为docker run -d -e RABBITMQ_NODENAME=bmorabbit --name rabbitmq -p 15672:15672 micdenny/rabbitmq-windows使用Windows容器。 docker版本的输出是:

 Client: Version: 17.06.0-ce API version: 1.30 Go version: go1.8.3 Git commit: 02c1d87 Built: Fri Jun 23 21:30:30 2017 OS/Arch: windows/amd64 Server: Version: 17.06.0-ce API version: 1.30 (minimum version 1.24) Go version: go1.8.3 Git commit: 02c1d87 Built: Fri Jun 23 22:19:00 2017 OS/Arch: windows/amd64 Experimental: true 

而且我没有做任何额外的networkingconfiguration。

我可以使用容器IP地址从我的Windows10机器访问RabbitMQ。 为了得到这个地址,我使用了`docker inspect rabbitmq`。 当我尝试从我的Windows8机器中访问相同的RabbitMQ时,我将得到一个超时错误。 我是否需要做一些额外的设置才能在Windows容器下运行?

我曾试过

  • 使用Linux容器的相同configuration即将用完。 所以这个问题至关重要的是什么额外的configuration设置需要在Windows容器下运行这个?
  • 运行专用于连接到特定networking的docker容器,例如–network =“<networkname>”

您可以将容器内的服务正在侦听的端口暴露给主机。

例如,如果您在端口80上的容器中运行apache httpd,并且同一networking中的其他人要访问它,则应执行以下操作。

 docker run -d -p 80:80 apache 

请参阅这里的文章

你也可以参考stackoverflow问题从主机连接到容器。