docker创建rabbitmq集群

一、下载镜像

docker pull rabbitmq:3-management

二、创建docker网络

docker network create -d bridge --subnet 192.168.1.0/24 gateway 192.168.1.254 rabbitmq

三、创建通信的cookie

echo "rabbitmq_cookie" > .erlang.cookie
chmod 400 .erlang.cookie

四、编写docker-compose.yml文件

# 进入rabbitmq文件夹下
cd /home/rabbitmq
# 编写docker compose文件
vim docker-compose.yml
services:
  rabbitmq1:
    image: rabbitmq:3-management
    container_name: rabbitmq1
    hostname: rabbitmq1
    environment:
      RABBITMQ_DEFAULT_USER: xxxx
      RABBITMQ_DEFAULT_PASS: xxxx
    RABBITMQ_NODENAME:rabbit@rabbitmq1 ports:
- 5673:5672 - 15673:15672 volumes: - /home/rabbitmq/data/rabbitmq1:/var/lib/rabbitmq - ./.erlang.cookie:/var/lib/rabbitmq/.erlang.cookie networks: rabbitmq: ipv4_address: 192.168.2.1 rabbitmq2: image: rabbitmq:3-management container_name: rabbitmq2 hostname: rabbitmq2 environment: RABBITMQ_DEFAULT_USER: xxxx RABBITMQ_DEFAULT_PASS: xxxx RABBITMQ_NODENAME: rabbit@rabbitmq2 ports: - 5674:5672 - 15674:15672 volumes: - /home/rabbitmq/data/rabbitmq2:/var/lib/rabbitmq - ./.erlang.cookie:/var/lib/rabbitmq/.erlang.cookie networks: rabbitmq: ipv4_address: 192.168.2.2 rabbitmq3: image: rabbitmq:3-management container_name: rabbitmq3 hostname: rabbitmq3 environment: RABBITMQ_DEFAULT_USER: xxxx RABBITMQ_DEFAULT_PASS: xxxx
RABBITMQ_NODENAME:rabbit@rabbitmq3
 RABBIT ports:
- 5675:5672 - 15675:15672 volumes: - /home/rabbitmq/data/rabbitmq3:/var/lib/rabbitmq - ./.erlang.cookie:/var/lib/rabbitmq/.erlang.cookie networks: rabbitmq: ipv4_address: 192.168.2.3 networks: rabbitmq: external: true

五、将节点加入到集群

docker exec -it rabbitmq-node1 bash -c "rabbitmqctl stop_app"  # 停止应用以更改配置
docker exec -it rabbitmq-node1 bash -c "rabbitmqctl reset"  # 重置节点以避免潜在的配置问题,可选步骤
docker exec -it rabbitmq-node1 bash -c "rabbitmqctl start_app"  # 启动应用以使更改生效
docker exec -it rabbitmq-node2 bash -c "rabbitmqctl stop_app"  # 停止第二个节点的应用以更改配置
docker exec -it rabbitmq-node2 bash -c "rabbitmqctl join_cluster rabbit@rabbitmq-node1"  # 将第二个节点加入到第一个节点所在的集群中
docker exec -it rabbitmq-node3 bash -c "rabbitmqctl stop_app"  # 停止第三个节点的应用以更改配置
docker exec -it rabbitmq-node3 bash -c "rabbitmqctl join_cluster rabbit@rabbitmq-node1"  # 将第三个节点加入到第一个节点所在的集群中
docker exec -it rabbitmq-node2 bash -c "rabbitmqctl start_app"  # 启动应用以使更改生效
docker exec -it rabbitmq-node3 bash -c "rabbitmqctl start_app"  # 启动应用以使更改生效

六、访问

http://192.168.100.40:15673

登录以后

 

posted @ 2025-06-09 21:11  此时不卷何时卷  阅读(18)  评论(0)    收藏  举报