前言: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内的用户权限受限文章来源:https://www.toymoban.com/news/detail-585492.html
解决:docker run 后面增加参数 --privileged=true文章来源地址https://www.toymoban.com/news/detail-585492.html
到了这里,关于rabbitmq部署(docker方式)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!