参考了如下博客:
https://www.jianshu.com/p/93cada3d264b
https://blog.csdn.net/czczcz_/article/details/83379812
1.宿主机
CENTOS1 10.11.17.248 centos1:rabbit1
CENTOS2 10.11.17.249 centos2:rabbit2
CENTOS3 10.11.17.252 centos3:rabbit3
2.宿主机持久数据目录和hosts配置(每个节点按下列步骤执行)
创建持久数据目录
mkdir /opt/rabbitmq
host配置(rabbitmq集群需要解析主机名)
cd /opt/rabbitmq
vim hosts#输入
10.11.17.248 centos1rabbit1
10.11.17.249 centos2 rabbit2
10.11.17.252 centos3 rabbit3
3.创建容器
docker run -d --net host --name rabbit1 --log-opt max-size=10m --log-opt max-file=3 -v /opt/rabbitmq:/var/lib/rabbitmq:z -v /opt/rabbitmq/hosts:/etc/hosts -e RABBITMQ_DEFAULT_USER=user01 -e RABBITMQ_DEFAULT_PASS=password01 -e RABBITMQ_ERLANG_COOKIE='secret cookie here' rabbitmq:3.6.15-management
参数说明
-d
#容器后台运行
--name rabbit1
#容器名为rabbit1,在宿主机上运行“docker ps”命令时显示的名称
--log-opt max-size=10m
#日志文件单个最大10M
--log-opt max-file=3
#日志文件最多保留3个
-v /data/rabbitmq:/var/lib/rabbitmq:z
#将宿主机目录/data/rabbitmq挂载到容器的/var/lib/rabbitmq目录。z是一个标记,在selinux环境下使用。
-v /opt/rabbitmq/hosts:/etc/hosts
#略
-e RABBITMQ_DEFAULT_USER=admin
#设置rabbitmq默认用户为admin
-e RABBITMQ_DEFAULT_PASS=admin123
#设置rabbitmq默认密码为admin123
-e RABBITMQ_ERLANG_COOKIE='secret cookie here'
#设置rabbitmq的cookie为“secret cookie here”,可以自定义为其他文本,三个容器保持一致即可。
reg.onlymin.com/public/rabbitmq:3.6.15-management
#使用reg.onlymin.com/public/rabbitmq:3.6.15-management这个镜像
4. 设置节点2,加入到集群:
docker exec -it rabbit2 /bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@centos1
rabbitmqctl start_app
exit
5. 设置节点3,加入到集群:
docker exec -it rabbit3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@centos1
rabbitmqctl start_app
exit
参数“--ram”表示设置为内存节点,忽略次参数默认为磁盘节点。
6. 查询集群状态
rabbitmqctl cluster_status
7.故障节点的处理
docker exec -it rabbit2 /bin/bash
rabbitmqctl stop
#在一个正常的节点上移除有问题的节点
rabbitmqctl -n rabbit@centos1 forget_cluster_node rabbit@centos2
rabbitmq ERROR: epmd error for host deb:address (cannot connect to host/port)解决方法
2018年10月25日 15:03:50 czczcz_ 阅读数:1219
进入/etc/hosts看下
# vi /etc/hosts
可以看得出使用debian这个主机名运行rabbitmq的地址不是127.0.0.1,所以rabbaitmq无法启动
127.0.0.1 debian
在里面在加一行:127.0.0.1 debian
在启动rabbitmq,就ok了。