一、docker安装单机rabbit
1、查找rabbitmq镜像或者在docker仓库查看rabbitmq镜像
docker search rabbitmq
2、拉取最新的rabbitmq
docker pull rabbitmq
3、运行rabbitmq容器
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq
4、进入rabbitmq容器
docker exec -it 容器id /bin/bash
5、启用web端访问控制台(默认拉取最新的需要手动开启控制台,也可以直接拉取management结尾的,参考下面的集群拉取镜像)
rabbitmq-plugins enable rabbitmq_management
6、访问web控制台
http://localhost:15672
二、docker安装rabbit集群
1、拉取带控制台的rabbitmq镜像
docker pull rabbitmq:3.9.15-management
2、创建并运行三个rabbitmq容器
创建节点rabbit1
docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.9.15-management
创建节点rabbit2
docker run -d --hostname rabbit2 --name myrabbit2 -p 5673:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.9.15-management
创建节点rabbit3
docker run -d --hostname rabbit3 --name myrabbit3 -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.9.15-management
3、将三个节点添加到集群中,以第一个节点为主节点,分别进入容器内,执行以下命令
(1)进入rabbit1容器
docker exec -it b9bf7a042ceb bash
# 停止服务
rabbitmqctl stop_app
# 离开所在的集群
rabbitmqctl reset
# 启动服务
rabbitmqctl start_app
exit
(2)进入rabbit2容器
docker exec -it feae57881554 bash
# 停止服务
rabbitmqctl stop_app
# 离开所在的集群
rabbitmqctl reset
# 加入集群
rabbitmqctl join_cluster rabbit@rabbit1
# 启动服务
rabbitmqctl start_app
exit
(3)进入rabbit3容器
docker exec -it f509d3466c32 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit1
rabbitmqctl start_app
exit
(4)进入控制台localhost:15672,新建一个queue
4、普通集群已经搭建好了,镜像集群只需要在普通集群的基础上,添加一些命令即可
(1)进入主节点的容器,执行命令,将所有的queue都进行镜像
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
5、进入控制台,查看queue