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问题从主机连接到容器。