将Windows容器连接到在同一个Docker主机上运行的Linux容器

最初问ServerFault,因为我认为这是一个networking问题,但被告知移动到这里: https : //serverfault.com/questions/844480/connect-windows-container-to-linux-container-running-on-same-泊坞窗主机

我有RabbitMQ在一个Linux容器中运行,我想从一个Windows容器连接到它,两个容器都运行在同一台主机上,一台Windows 10 PC上。 我开始像这样的RabbitMQ:

docker run -p 8080:15672 -p 5672:5672 -d --hostname my-rabbit --name some-rabbit rabbitmq:3-management 

我可以在主机PC上查看RabbitMQ的networkingpipe理应用程序: http:// localhost:8080 /#/

我切换到Windows容器模式(使用小鲸鱼图标),并启动我的Windows容器,如下所示:

 docker run --name "whatever" -d "whatever" 

在这一点上,我可以使用分配给Windows容器的默认网关IP连接到RabbitMQ。 我的连接string如下所示:

 amqp://guest:guest@172.27.192.1:5672/ 

工作正常,但我更喜欢使用主机名,也不隧道通过主机,如果我可以避免它(我不得不添加防火墙例外,使其工作)。 对于我的各种Windows容器之间的通话,我可以使用主机名,如果我运行每个容器具有唯一的 – 主机名值,但这似乎不适用于Windows和Linux容器。 我尝试添加一个新的networking到我的Linux容器与Windows容器相同的子网,但是这并没有帮助。 我已经读了一些关于群集和其他更高级/更新的选项,但是目前我关注的是在一台主机上运行的所有容器(这是为了QA的努力,而不是生产)。 我想尽可能简单的SDET和其他人拉下多个容器,运行几个BAT文件或PowerShell脚本,并拥有一切交谈 – 没有修改configuration文件中的IP地址,或担心冲突的networking设置。 如果我只使用Linux容器,或者只使用Windows容器,那么我可以轻松地做到这一点,但是我需要同时使用这两种容器。