Docker部署RabbitMQ集群(Cluster)

搜索镜像

docker search rabbitmq

拉取镜像

docker pull rabbitmq:latest

注:镜像Tag可通过Docker Hub查看。

相关配置

  • 设置默认用户
-e RABBITMQ_DEFAULT_USER rabbitmq
  • 设置默认密码
-e RABBITMQ_DEFAULT_PASS rabbitmq

运行容器

运行RabbitMQ容器,并暴露服务端口5672与Web管理端端口15672;

docker run -d --name RabbitMQ-5673 --hostname rabbitmq5673 -p 5673:5672 -p 15673:15672 -v /docker/rabbitmq/cluster/node1:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=rabbitmq -e RABBITMQ_DEFAULT_PASS=rabbitmq rabbitmq:latest

docker run -d --name RabbitMQ-5674 --hostname rabbitmq5674 -p 5674:5672 -p 15674:15672 -v /docker/rabbitmq/cluster/node2:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=rabbitmq -e RABBITMQ_DEFAULT_PASS=rabbitmq rabbitmq:latest

docker run -d --name RabbitMQ-5675 --hostname rabbitmq5675 -p 5675:5672 -p 15675:15672 -v /docker/rabbitmq/cluster/node3:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=rabbitmq -e RABBITMQ_DEFAULT_PASS=rabbitmq rabbitmq:latest

同步Erlang Cookie

将RabbitMQ集群节点1宿主机目录下的.erlang.cookie文件Copy至节点2、节点3容器中;

docker cp /docker/rabbitmq/cluster/node1/.erlang.cookie RabbitMQ-5674:/var/lib/rabbitmq/.erlang.cookie
docker cp /docker/rabbitmq/cluster/node1/.erlang.cookie RabbitMQ-5675:/var/lib/rabbitmq/.erlang.cookie

更改节点2、节点3容器中的.erlang.cookie文件权限;

docker exec -it RabbitMQ-5674 /bin/bash
chmod 400 /var/lib/rabbitmq/.erlang.cookie

docker exec -it RabbitMQ-5675 /bin/bash
chmod 400 /var/lib/rabbitmq/.erlang.cookie

重启节点2、节点3容器;

docker restart RabbitMQ-5674
docker restart RabbitMQ-5675

构建集群

进入RabbitMQ容器节点2、节点3,执行rabbitmqctl join_cluster命令,加入集群;

docker exec -it RabbitMQ-5674 /bin/bash
rabbitmqctl join_cluster rabbit@rabbitmq5673

docker exec -it RabbitMQ-5675 /bin/bash
rabbitmqctl join_cluster rabbit@rabbitmq5673

Docker-Compose

编写docker-compose.yml文件;

version: "3"
services:
  rabbitmq5673:
    image: rabbitmq:latest
    hostname: rabbitmq5673
    container_name: RabbitMQ-5673
    ports:
      - 5673:5672
      - 15673:15672
    volumes:
      - /docker/rabbitmq/cluster/node1:/var/lib/rabbitmq
    environment:
      - RABBITMQ_DEFAULT_USER=rabbitmq
      - RABBITMQ_DEFAULT_PASS=rabbitmq
  rabbitmq5674:
    image: rabbitmq:latest
    hostname: rabbitmq5674
    container_name: RabbitMQ-5674
    ports:
      - 5674:5672
      - 15674:15672
    volumes:
      - /docker/rabbitmq/cluster/node2:/var/lib/rabbitmq
    environment:
      - RABBITMQ_DEFAULT_USER=rabbitmq
      - RABBITMQ_DEFAULT_PASS=rabbitmq
  rabbitmq5675:
    image: rabbitmq:latest
    hostname: rabbitmq5675
    container_name: RabbitMQ-5675
    ports:
      - 5675:5672
      - 15675:15672
    volumes:
      - /docker/rabbitmq/cluster/node3:/var/lib/rabbitmq
    environment:
      - RABBITMQ_DEFAULT_USER=rabbitmq
      - RABBITMQ_DEFAULT_PASS=rabbitmq

执行docker-compose命令运行容器后,进行同步Erlang Cookie,并构建集群

docker-compose -p rabbitmq_cluster up -d
  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值