docker - Windows的Docker:Linux和Windows容器之间的通信

标签 docker .net-core docker-compose visual-studio-2017 docker-for-windows

我正在尝试使用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/

相关文章:

Docker-compose用于本地开发,安装依赖

docker - 如何处理不断变化的 docker 组合容器的 ips?

docker - 如何在同一台服务器上托管两个暴露端口 80 的 Docker 容器

c# - EF Core DeleteBehavior.SetNull 造成循环问题

.net - .NET Core 的嵌入式 NoSQL 数据库

c# - "The project ' 迁移到 .NET Core 3 后 Web ' must provide a value for Configuration"错误

symfony - Docker Symfony 4和MySQL

docker - Docker Compose phpmyadmin登录失败

Docker 容器在生产中使用时的行为

docker - 将文件夹复制到 Docker 容器中的已安装卷中