拉取镜像
docker pull rabbitmq:management
构建容器
# node1
docker run -dit --hostname node1 --net=host -v /data/rabbitmq-1:/var/lib/rabbitmq -e RABBITMQ_NODENAME=r1 --add-host node1:192.168.4.30 --add-host node2:192.168.4.29 --add-host node3:192.168.4.30 --name rabbitmq-1 rabbitmq:management
# node2
docker run -dit --hostname node2 --net=host -v /data/rabbitmq-2:/var/lib/rabbitmq -e RABBITMQ_NODENAME=r2 --add-host node1:192.168.4.30 --add-host node2:192.168.4.29 --add-host node3:192.168.4.30 --name rabbitmq-2 rabbitmq:management
# node3
docker run -dit --hostname node3 --net=host -v /data/rabbitmq-3:/var/lib/rabbitmq -e RABBITMQ_NODENAME=r3 --add-host node1:192.168.4.30 --add-host node2:192.168.4.29 --add-host node3:192.168.4.30 --name rabbitmq-3 rabbitmq:manageme
统一cookie信息
docker exec -it rabbitmq-1 bash
cat /var/lib/rabbitmq/.erlang.cookie
echo "ETMRPARFQISLHCBNKMQH" > /var/lib/rabbitmq/.erlang.cookie
docker restart rabbitmq-1
docker exec -it rabbitmq-2 bash
echo "ETMRPARFQISLHCBNKMQH" > /var/lib/rabbitmq/.erlang.cookie
docker restart rabbitmq-2
docker exec -it rabbitmq-3 bash
echo "ETMRPARFQISLHCBNKMQH" > /var/lib/rabbitmq/.erlang.cookie
docker restart rabbitmq-3
加入集群
docker exec -it rabbitmq-2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram r1@node1
rabbitmqctl start_app
docker exec -it rabbitmq-3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram r1@node1
rabbitmqctl start_app