Docker搭建集群环境
-
- 安装步骤:
- Docker-Compose搭建集群:
- [Docker 直接搭建集群:](#Docker 直接搭建集群:)
实际生产环境中较少使用直接配置的形式搭建 RabbitMQ集群,通常使用容器化进行部署搭建,Docker 可通过运行同一镜像的方式在一台Linux机器上建立RabbitMQ集群
缺点是当Linux主机出现问题,基于Docker容器搭建的集群环境将无法使用
安装步骤:
配置Docker:
bash
1、下载相关依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
2、配置Docker仓库并安装Docker
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
3、开启自启动
systemctl enable docker
4、启动Docker
systemctl startr docker
下载RabbitMQ镜像:
指定暴露给外部的端口、控制台端口,获取RabbitMQ最新版本镜像并开启控制台(management参数)
bash
docker run -d --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
查看RabbitMQ镜像安装情况:
使用 ps 命令查看镜像获取情况


访问外部暴露端口进行RabbitMQ管理页
后续需要创建集群,因此需要停止已经运行的RabbitMQ镜像
bash
docker stop d696199853a2
Docker-Compose搭建集群:
安装Docker-Compose:
bash
1、安装yaml依赖
dnf install python3-pip
2、安装Docker-Compose
pip3 install -U pip setuptools
pip3 install docker-compose
3、查看版本
docker-compose version
集群配置文件编写:
参数后面不能有空格
yaml
version: "2.0"
services:
rabbit1:
image: rabbitmq:3-management
hostname: rabbit1
ports:
- 5672:5672
- 15672:15672
environment:
- RABBITMQ_DEFAULT_USER=guest
- RABBITMQ_DEFAULT_PASS=guest
- RABBITMQ_ERLANG_COOKIE='dmbjzrabbitmq'
rabbit2:
image: rabbitmq:3-management
hostname: rabbit2
ports:
- 5673:5672
environment:
- RABBITMQ_ERLANG_COOKIE='dmbjzrabbitmq'
links:
- rabbit1
rabbit3:
image: rabbitmq:3-management
hostname: rabbit3
ports:
- 5674:5672
environment:
- RABBITMQ_ERLANG_COOKIE='dmbjzrabbitmq'
links:
- rabbit1
- rabbit2
创建集群容器:
bash
docker-compose up -d
集群容器创建完毕

查看集群容器详情
节点2配置:
进入容器:
bash
docker exec -it docker_rabbit2_1 bash
加入到集群:
bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl start_app
exit
节点3配置:
进入容器:
bash
docker exec -it docker_rabbit3_1 bash
加入到集群:
bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl join_cluster rabbit@rabbit2
rabbitmqctl start_app
exit
测试:
进入控制台web界面查看,集群搭建成功

集群搭建详情
Docker 直接搭建集群:
创建容器:
运行三个MQ容器
bash
docker run -d --hostname rabbit1 --name myrabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='dmbjzcookies' rabbitmq:3-management
docker run -d --hostname rabbit2 --name myrabbit2 -p 15673:15672 -p 5673:5672 --link myrabbit1:rabbit1 -e RABBITMQ_ERLANG_COOKIE='dmbjzcookies' rabbitmq:3-management
docker run -d --hostname rabbit3 --name myrabbit3 -p 15674:15672 -p 5674:5672 --link myrabbit1:rabbit1 --link myrabbit2:rabbit2 -e RABBITMQ_ERLANG_COOKIE='dmbjzcookies' rabbitmq:3-management
加入集群:
进入到三个容器中,使节点2与节点3加入到节点1中
bash
docker exec -it myrabbit1 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit
docker exec -it myrabbit2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl start_app
exit
docker exec -it myrabbit3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbit1
rabbitmqctl start_app
exit
进入控制台web界面查看,集群搭建成功

集群搭建详情