由docker组成的RabbitMQ集群在不同的主机和不同的项目上组成

我有3个项目,部署在不同的主机上。 每个项目都有自己的RabbitMQ容器。 但是我需要用这3个主机创build集群,使用相同的虚拟主机,但不同的用户/login对。

我曾尝试过Swarm和覆盖networking,但是Swarm旨在运行独立容器,并且组成它不起作用。 另外,我曾尝试docker-compose包,但是这不是预期的工作:(

我认为这将是这样的工作

1)在pipe理器节点上创build覆盖networking

2)在每个组成文件中,我用覆盖networking扩展rabbitmq容器的networkingconfiguration。

3)他们按预期工作,我不发布到互联网rabbitmq端口。


任何想法,我怎么能做到这一点?

你的方法是正确的,但是Docker Compose目前不能和Swarm模式一起工作 。 撰写只运行docker命令,所以你可以编写你想要的东西。 对于每个项目你都有一个这样的脚本:

 docker network create -d overlay app1-net docker service create --network app1-net --name rabbit-app1 rabbitmq:3 docker service create --network app1-net --name app1 your-app-1-image ... 

当你在pipe理器上运行这三个脚本时,你将有三个networking,每个networking都有它自己的RabbitMQ服务(默认只有一个容器,使用--replicas来运行多个)。 在networking内,其他服务可以通过DNS名称rabbit-appX到达消息队列。 您不需要发布任何端口,因此不能在Dockernetworking之外访问Rabbit。