rabbitmq部署(docker方式)

前言:rabbitmq一旦有漏洞,版本升级麻烦,于是改为docker部署
环境:centos7

#停掉之前的服务

systemctl stop rabbitmq-server

systemctl disable rabbitmq-server

查了官网,当前3.11.x 最高版本是3.11.19, 虽然3.12.x已出,还是继续用3.11.x
于是使用镜像 rabbitmq:3.11.19-management

#拉取镜像
docker pull rabbitmq:3.11.19-management

#运行

docker run -d --hostname mq --name rabbitmq -p 15672:15672 -p 5672:5672 -p 1883:1883 -p 15675:15675 -v /opt/common/rabbitmq/etc:/etc/rabbitmq -v /opt/common/rabbitmq/lib:/var/lib/rabbitmq -v /opt/rabbitmq/log:/var/log/rabbitmq -e TZ=Asia/Shanghai rabbitmq:3.11.19-management

查看日志,如果有文件夹权限问题,则可能是映射文件夹权限,则看看该容器是什么用户,然后设置为该用户所属就行。
chown -R polkitd:input /opt/common/rabbitmq/

在这里插入图片描述

#运行成功之后启动插件

docker exec rabbitmq rabbitmq-plugins enable rabbitmq_management

docker exec rabbitmq rabbitmq-plugins enable rabbitmq_web_mqtt

docker exec rabbitmq rabbitmq-plugins enable rabbitmq_mqtt

#创建账号,进入容器内操作

docker exec -it rabbitmq bash

#进入容器后做以下操作------------start--------------------

#查看用户列表

rabbitmqctl list_users

#添加用户admin

rabbitmqctl add_user admin Abc123$%^

#admin 设置为Administrator

rabbitmqctl set_user_tags admin administrator

#设置权限,允许访问vhost “/”

rabbitmqctl set_permissions -p “/” admin “." ".” “.*”

#也可以新增vhost,例如增加myhost:rabbitmqctl add_vhost myhost,然后加入权限rabbitmqctl set_permissions -p “myhost” admin “." ".” “.*”

#顺手修改一下guest密码,guest默认不可远程连接(只能localhost)

rabbitmqctl change_password guest Admin_mq@1024

#执行exit,退出容器----------------end-----------------------

#开放外部访问:

firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=“10.10.5.1/24” port protocol=“tcp” port=“1883” accept”
firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=“10.10.5.1/24” port protocol=“tcp” port=“5672” accept”
firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=“10.10.5.1/24” port protocol=“tcp” port=“15672” accept”

firewall-cmd --reload

端口说明:

-15672 是rabbitmq management管理界面默认访问端口
-5672 是amqp默认端口
-1883 是mqtt tcp协议默认端口
-15675 是web_mqtt ws协议默认端口

最后测试登录:
http://{ip}:15672
使用admin账号登录

踩坑:
登录不成功时会出现以下错误:
undefined: There is no template at js/tmpl/error-popup.ejs undefined
(其实是提示错误,但这个错误提示模板加载不出)

解决:清除一下浏览器缓存

你可能感兴趣的:(docker,rabbitmq,docker)