rabbitmq部署(docker方式)

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

环境:centos7

#停掉之前的服务

systemctl stop rabbitmq-server

systemctl disable rabbitmq-server

查了官网,当前3.11.x 最高版本是3.11.21(截至2023-08-23), 虽然3.12.x已出,还是继续用3.11.x
于是使用镜像 rabbitmq:3.11.21-management

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

#运行

docker run -d --hostname mq --name rabbitmq --restart=always -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/common/rabbitmq/log:/var/log/rabbitmq -e TZ=Asia/Shanghai rabbitmq:3.11.21-management

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

在这里插入图片描述

注意,如果跑不起来,且日志里面报错“Operation not permitted (1)...”,则 docker run 后面增加参数 --privileged=true,删除容器重新跑

#运行成功之后启动插件

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账号登录

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

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

2 docker run 时报错:Failed to create thread: Operation not permitted (1)
原因是docker内的用户权限受限

解决:docker run 后面增加参数 --privileged=true

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值