搜索镜像
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