运行RabbitMQ
拉取镜像
docker pull rabbitmq:management
启动容器
docker run -d -e RABBITMQ_DEFAULT_USER=Admin -e RABBITMQ_DEFAULT_PASS=123456 -v mq-plugins:/plugins --name mq --hostname mq -p 15672:15672 -p 5672:5672 -d rabbitmq:management
-e RABBITMQ_DEFAULT_USER=Admin设置默认账号为Admin
e RABBITMQ_DEFAULT_PASS=123456设置默认账号为123456
如果不设置这两条参数账号密码默认为:guest
这是启动带有管理面板的版本,docker会自动拉取缺少的并且启动
管理面板
通过http://{hostname}:15672进入到管理面板,使用刚才设置的账号密码登录
搭建RabbitMQ集群
拉取镜像
docker pull rabbitmq:management
运行容器
## 第一个
docker run -d --hostname host_rabbit1 --name rabbit1 -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie' rabbitmq:management
## 第二个
docker run -d --hostname host_rabbit2 --name rabbit2 -p 5673:5673 --link rabbit1:host_rabbit1 -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie' rabbitmq:management
## 第三个
docker run -d --hostname host_rabbit3 --name rabbit3 -p 5674:5674 --link rabbit1:host_rabbit1 --link rabbit2:host_rabbit2 -e RABBITMQ_ERLANG_COOKIE='rabbitmq_cookie' rabbitmq:management
-e RABBITMQ_ERLANG_COOKIE='rabbitmq_cockie'同一个集群内的值是必须相同的
--link 容器之间的连接
加入节点到集群
设置节点1
## 进入容器1
docker exec -it rabbit1 bash
## 停止应用
rabbitmqctl stop_app
## 重置节点
rabbitmqctl reset
## 启动应用
rabbitmqctl start_app
## 退出容器
exit
设置节点2
## 进入容器2
docker exec -it rabbit2 bash
## 停止应用
rabbitmqctl stop_app
## 重置节点
rabbitmqctl reset
## 加入集群
rabbitmqctl join_cluster --ram rabbit@host_rabbit1
## 启动应用
rabbitmqctl start_app
## 退出容器
exit
设置节点3
## 进入容器3
docker exec -it rabbit2 bash
## 停止应用
rabbitmqctl stop_app
## 重置节点
rabbitmqctl reset
## 加入集群
rabbitmqctl join_cluster --ram rabbit@host_rabbit1
## 启动应用
rabbitmqctl start_app
## 退出容器
exit
--ram 表示设置为内存节点,忽略参数默认为磁盘节点