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" # 启动应用以使更改生效
六、访问
登录以后


浙公网安备 33010602011771号