docker启动rabbitmq(单机模式、集群模式)

Docker启动RabbitMQ

1. 单机模式

直接运行镜像,没有则从外部库拉取

docker run -d --name rabbitmq -v /app/rabbitmq:/var/lib/rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.11-management

2. 集群模式

运行3个RabbitMQ容器实例,一主两从

docker run -d --hostname rabbit1 --name rabbit1 -v /app/rabbitmq/rabbitmq01:/var/lib/rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie' rabbitmq:3.11-management

docker run -d --hostname rabbit2 --name rabbit2 -v /app/rabbitmq/rabbitmq02:/var/lib/rabbitmq -p 5673:5672 -p 15673:15672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie'  --link rabbit1 rabbitmq:3.11-management

docker run -d --hostname rabbit3 --name rabbit3 -v /app/rabbitmq/rabbitmq03:/var/lib/rabbitmq -p 5674:5672 -p 15674:15672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie'  --link rabbit1 --link rabbit2  rabbitmq:3.11-management
--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名)

-e 指定环境变量(RABBITMQ_DEFAULT_VHOST:默认为虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名,guest;RABBITMQ_DEFAULT_PASS:默认用户名的密码,guest;RABBITMQ_ERLANG_COOKIE 节点认证作用,部署集成时需要同步该值)

↓↓↓该项必须加,不然无法添加集群
--link <其他容器名>:<其他容器别名> 
通过容器名互相通信,容器间共享环境变量。主要用来解决两个容器通过ip地址连接时容器ip地址会变的问题

在这里插入图片描述

分别进入从节点rabbit2和rabbit3,帮它们加入主节点rabbit1

docker exec -it rabbit2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl start_app
docker exec -it rabbit3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl start_app

在这里插入图片描述

此时打开RabbitMQ监控页面可以看到如下内容,说明集群创建成功!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/RuserTion/article/details/128431373