1.查看RabbitMQ镜像,管理员方式启动cmd或者powershell,运行下面的命令,注意:需要加上:management,否则是没有对应的管理界面UI的:
执行 docker pull rabbitmq:management
如果想要实现数据持久化,需要添加以下两个命令,不需要的话可以把这两个命令去掉
-v d:/rabbitmq/data:/var/lib/rabbitmq/mnesia/ 挂载宿主机目录到容器目录中
--hostname my_rabbit 指定hostname的名称,因为RabbitMQ的mnesia目录中文件夹名称的一部分是hostname,如果不定义的话,是随机生成的,后续如果重新创建容器,因为挂机目录文件夹名称不一样,就无法保持新旧容器的数据一致。
2.拉取abbitMQ镜像:(这里是默认拉取最新的,也可以在后面指定版本)
执行 docker pull rabbitmq 然后docker images 查看拉取的镜像包
3.启动RabbitMQ
docker run -d --hostname jqtahm_host_rabbit --name jqtahm_rabbit -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest -p 15672:15672 -p 5672:5672 rabbitmq:management
说明:
-d 后台运行容器;
–name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v 映射目录或文件(根据自行需要配置);
–hostname 主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;
RABBITMQ_DEFAULT_PASS:默认用户名的密码)
4.安装web管理插件rabbitmq_management
如果,第1步拉取镜像的时候,命令行中没有加:management,就要执行这一步操作。不安装web管理插件,通过http://ip:15672可能访问不了,或者台管理页面点击 Channels 报错,提示Stats in management UI are disabled on this node。
(1)先执行docker ps 拿到当前的镜像ID,我在powershell命令行列表里看到的镜像id好短,然后复制出来是78e6b2e4a4e2,我觉得这一步直接去上面的创建和启动容器的命令行里,找自己确定的参数name 后面的容器名来做步骤2的参数是不是也可以,比如我的是jqtahm_rabbit
(2)进入rabbitMq容器:
docker exec -it {rabbitmq容器ID(不行就用name)} /bin/bash
我的:
docker exec -it 78e6b2e4a4e2 /bin/bash
docker exec -it jqtahm_rabbit /bin/bash
(3)查看配置文件,我在这一步执行失败了,跳过这一步到下面改配置文件了。
cat /etc/rabbitmq/conf.d/management_agent.disable_metrics_collector.conf
将配置文件内容,true改为false:
cd /etc/rabbitmq/conf.d/
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
(4)退出容器:
exit
(5)输入指令,安装插件:
docker exec -it {rabbitmq容器名称或者id} rabbitmq-plugins enable rabbitmq_management
我的:docker exec -it 78e6b2e4a4e2 rabbitmq-plugins enable rabbitmq_management
5.重启容器,其实也可以用docker桌面管理程序鼠标重启:
docker restart {rabbitmq容器id}
我的:docker restart 78e6b2e4a4e2
6.浏览器访问地址:
http://ip地址(localhost应该也可以):15672,这里的用户名和密码默认都是guest
http://127.0.0.1:15672/#/