centos7用docker搭建rabbitmq集群

1:先拉取rabbitmq镜像

docker pull rabbitmq:3.6.15-management

2:创建三个rabbitmq容器

docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

报错:
docker: Error response from daemon: driver failed programming external connectivity on endpoint myrabbit1 (04910bc79822d9a8bb3a161fca3ab6734f5b8246125c5f098303af15d006dca9): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 15672 -j DNAT --to-destination 172.17.0.4:15672 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)).
如果遇到 重启docker

systemctl restart docker

删除之前没创建成功的容器

docker rm 容器名

再次执行创建容器
1

docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

2

docker run -d --hostname rabbit2 --name myrabbit2 -p 5673:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

3

docker run -d --hostname rabbit3 --name myrabbit3 -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitcookie' rabbitmq:3.6.15-management

加入RabbitMQ节点到集群
设置节点1: 依次执行下列命令

docker exec -it myrabbit1 bash

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl start_app

exit

设置节点2,加入到集群:

docker exec -it myrabbit2 bash

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster --ram rabbit@rabbit1

rabbitmqctl start_app

exit

设置节点3,加入到集群:

docker exec -it myrabbit3 bash

rabbitmqctl stop_app

rabbitmqctl reset

rabbitmqctl join_cluster --ram rabbit@rabbit1

rabbitmqctl start_app

exit

设置好之后,使用http://物理机ip:15672 进行访问了,默认账号密码是guest/guest,效果如下图:
centos7用docker搭建rabbitmq集群_第1张图片
启动了3个节点,1个磁盘节点和2个内存节点。

你可能感兴趣的:(centos7用docker搭建rabbitmq集群)