centos7用docker搭建rabbitmq集群全过程
先拉取rabbitmq镜像
docker pull rabbitmq:3.6.15-management
创建三个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,效果如下图:

启动了3个节点,1个磁盘节点和2个内存节点。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Docker使用Dockerfile创建支持ssh服务自启动的容器镜像
这篇文章主要介绍了Docker使用Dockerfile创建支持ssh服务自启动的容器镜像,需要的朋友可以参考下2016-10-10
docker+jenkins+gitee配置持续集成部署方式
这篇文章主要介绍了docker+jenkins+gitee配置持续集成部署方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-09-09
docker部署springboot项目实践(更新无需重新build)
文章描述了使用Docker部署Spring Boot项目的另一种方式,通过在宿主机上挂载jar包路径,实现jar包的热更新,避免了每次更新都需要重新构建镜像的问题2026-01-01


最新评论