Docker 创建RabbitMQ集群

1. 获取RabbitMQ镜像

> docker search rabbitmq
> docker pull rabbitmq:3.12-management

2. 创建集群容器文件夹

mkdir rabbitmqcluster
cd rabbitmqcluster/
mkdir rabbitmq01 rabbitmq02 rabbitmq03

3. 启动3个RabbitMQ容器

docker run -d --hostname rabbitmq01 --name rabbitmqCluster01 --privileged=true -v /home/hunter/rabbitmqcluster/rabbitmq01:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie' rabbitmq:3.12-management
docker run -d --hostname rabbitmq02 --name rabbitmqCluster02 --privileged=true -v /home/hunter/rabbitmqcluster/rabbitmq02:/var/lib/rabbitmq -p 15673:15672 -p 5673:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie'  --link rabbitmqCluster01:rabbitmq01 rabbitmq:3.12-management
docker run -d --hostname rabbitmq03 --name rabbitmqCluster03 --privileged=true -v /home/hunter/rabbitmqcluster/rabbitmq03:/var/lib/rabbitmq -p 15674:15672 -p 5674:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie'  --link rabbitmqCluster01:rabbitmq01 --link rabbitmqCluster02:rabbitmq02  rabbitmq:3.12-management

说明:
--hostname 指定容器机器名称,也就是一个标识
--name 指定容器名称
--privileged=true 授予root权限,不然会报错
-v 指定文件夹与容器的映射,可以直接进入对应的文件夹查看容器日期
-p 指定容器与外部机器的映射端口
-e 设置环境变量,此处设置了RabbitMQ的cookie环境变量
最后面rabbitmq:3.12-management参数是指定使用哪个镜像

4. 把节点加入集群

  1. 首先进入第一个节点,重置节点状态,等待其他节点加入
docker exec -it rabbitmqCluster01 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit
  1. 再进入第二个节点,重置状态,然后把第二个节点加入第一个节点的集群
docker exec -it rabbitmqCluster02 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq01
rabbitmqctl start_app
exit
  1. 最后同样的操作,把第三个节点也加入到集群
docker exec -it rabbitmqCluster03 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq01
rabbitmqctl start_app
exit
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容