我正在尝试使用Visual Studio Docker工具为项目设置开发环境。
我有一堆基于.net核心的软件,以及一些通过RabbitMq进行通信的完整fx微服务。 RabbitMq处于基于Linux的Docker容器内部,.net核心微服务也位于内部,它们通过docker-compose文件连接到同一网络。 .Net核心微服务通过使用容器名称作为主机名连接到RabbitMq毫无问题。
但是当涉及到基于Windows的容器时,存在一个问题,即Windows和Linux docker引擎之间无法共享网络,因此我无法使用容器名称将基于Windows的微服务连接到RabbitMq服务(使用主机IP进行开发很困难)机器,因为其他开发者会有所不同,并且会带来一些配置开销)。
AFAIK群集模式可用于确保此类通信,但是它比开发更适合于测试/产品环境,并且在这种情况下,很酷的Visual Studio容器调试功能也会丢失(它运行docker-compose up命令)。
那么,在单个主机上进行混合系统容器间通信的最佳方法是什么?
最佳答案
创建一个主机文件,其中RabbitMQ Docker容器的IP设置为名称。例如,使用Docker Toolbox,您可以在主机中放置以下内容:
192.168.99.100 docker
然后,每个开发人员可以设置IP,并且docker-compose
可以使用名称。
关于docker - Windows的Docker:Linux和Windows容器之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45553592/