- rabbitMQ安装
1、进入docker hub镜像仓库地址:https://hub.docker.com/
2、搜索rabbitMq,进入官方的镜像,可以看到以下几种类型的镜像;我们选择带有“mangement”的版本(包含web管理页面);
docker pull rabbitmq:3.8.4-management3、拉取镜像:
docker images 查看所有镜像4、单结点启动,根据下载的镜像创建和启动容器
docker run -d --name rabbitmq3.8.4 --restart=always -p 5672:5672 -p 15672:15672 -v /home/chually/99_dockerData/rabbitMQ:/var/lib/rabbitmq --hostname RabbitMQ3.8.4 -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=chually -e RABBITMQ_DEFAULT_PASS=chually cc86ffa2f398
说明:
-d 后台运行容器;
--name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v 映射目录或文件;
--hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)
5、集群模式
创建共享网络:
docker network create rabbitmqnet
docker network inspect rabbitmqnet
运行容器,注意-name和--hostname RabbitMQ5672保持一致,否则报:TCP connection succeeded but Erlang distribution failed
创建目录:mkdir -p /home/chually/99_dockerData/rabbitMQ/rabbitmq5672和 /home/chually/99_dockerData/rabbitMQ/rabbitmq5673
docker run -d --name=rabbitmq5672 --restart=always -p 5672:5672 -p 15672:15672 --restart always -v /home/chually/99_dockerData/rabbitMQ/rabbitmq5672:/var/lib/rabbitmq --hostname RabbitMQ5672 -e RABBITMQ_DEFAULT_USER=chually -e RABBITMQ_DEFAULT_PASS=chually -e RABBITMQ_NODENAME=rabbitmq5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmq-cluster-cookie' --net=rabbitmqnet cc86ffa2f398
docker run -d --name=rabbitmq5673 --restart=always -p 5673:5672 -p 15673:15672 --restart always -v /home/chually/99_dockerData/rabbitMQ/rabbitmq5673:/var/lib/rabbitmq --hostname RabbitMQ5673 -e RABBITMQ_DEFAULT_USER=chually -e RABBITMQ_DEFAULT_PASS=chually -e RABBITMQ_NODENAME=rabbitmq5673 -e RABBITMQ_ERLANG_COOKIE='rabbitmq-cluster-cookie' --net=rabbitmqnet cc86ffa2f398
将rabbitmq5673加入到rabbitmq5672
通过命令docker exec rabbitmq5672 bash -c "rabbitmqctl stop_app && rabbitmqctl start_app",可以看到主机名为rabbitmq5672@RabbitMQ567
docker exec rabbitmq5673 bash -c "rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl join_cluster rabbitmq5672@RabbitMQ5672 && rabbitmqctl start_app"