docker run -d --hostname rabbit01 --name myrabbit01 -p 5672:5672 -p 15672:15672 -e RABBITMQ_ERLANG_COOKIE=‘rabbitcookie‘ -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=886291 rabbitmq:management
docker run -d --hostname rabbit02 --name myrabbit02 -p 5673:5672 --link myrabbit01:rabbit01 -e RABBITMQ_ERLANG_COOKIE=‘rabbitcookie‘ rabbitmq:management
docker run -d --hostname rabbit03 --name myrabbit03 -p 5674:5672 --link myrabbit01:rabbit01 --link myrabbit02:rabbit02 -e RABBITMQ_ERLANG_COOKIE=‘rabbitcookie‘ rabbitmq:management
参数说明
注意点
启动了3个节点,1个磁盘节点和2个内存节点。
#设置节点1,加入到集群:
docker exec -it myrabbit01 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit
#设置节点2,加入到集群:
docker exec -it myrabbit02 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit01
rabbitmqctl start_app
exit
#设置节点3,加入到集群:
docker exec -it myrabbit03 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbit01
rabbitmqctl start_app
exit
参数--ram
表示设置为内存节点,忽略此参数默认为磁盘节点。
RabbitMQ是用Erlang实现的,Erlang Cookie相当于不同节点之间相互通讯的秘钥,Erlang节点通过交换Erlang Cookie获得认证。
#进入jt_rabbitmq01的容器内
docker exec -it jt_rabbitmq01 bash
#执行下面命令
rabbitmqctl set_policy ha-all "^" ‘{"ha-mode":"all"}‘
原文:https://www.cnblogs.com/wandoupeas/p/docker_rabbitmq_cluster.html