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

时间:2017-07-07 18:55:00

标签: docker hyper-v

环境

我的开发机器是使用Hyper-V托管的VM,操作系统是Windows 8.1。 Hyper-V在我的本地机器上运行,操作系统是Windows 10.在同一台主机上是RabbitMQ在docker容器中运行,为了让RabbitMQ运行,我使用了以下命令:docker run -d -e RABBITMQ_NODENAME=bmorabbit --name rabbitmq -p 15672:15672 micdenny/rabbitmq-windows我正在使用Windows容器进行docker 。 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

我没有做任何额外的网络配置。

问题

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

我尝试了什么

  • 使用Linux容器的相同配置已经用尽了 框。所以必不可少的问题是什么附加配置 需要设置才能在Windows容器下运行吗?
  • 运行专用于附加到特定的docker容器 网络,例如--network =“< networkname>”

1 个答案:

答案 0 :(得分:0)

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

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

docker run -d -p 80:80 apache

参阅文章here

您也可以参考stackoverflow question从主机连接到容器。