docker安装Rabbitmq并配置挂载文件和启动MQTT

安装Rabbitmq

#下载镜像,指定版本,该版本包含了web控制页面 :版本
docker pull rabbitmq:management

#创建本地映射目录
mkdir -p /home/docker/rabbitmq

#修改文件权限为可编辑 表示所有文件
chmod -R 777 /home/docker/

#启动

#方式一:默认guest 用户,密码也是 guest
docker run -d --hostname rabbit --name rabbit -v /ihcc/rabbitmq:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -p 1883:1883 rabbitmq:management

#方式二:设置用户名和密码
docker run -d --hostname rabbit --name rabbit -v /ihcc/rabbitmq:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_VHOST=my-vhost -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 1883:1883 rabbitmq:management

#修改后:设置用户名和密码admin和自定义外挂载文件路径并开启容器自启
docker run -d --hostname rabbitmq --name rabbit -v /home/docker/rabbitmq:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 1883:1883 --restart=always rabbitmq:management

#访问ui页面
http://localhost:15672/

Docker启动容器自启

docker update rabbit --restart=always

#参数:
-m 300m 分配300M内存
-e TZ=Asia/Shanghai 设置时区
–hostname:设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts,作为容器主机IP的别名,并且将显示在容器的bash中
-e 参数RABBITMQ_DEFAULT_USER 用户名RABBITMQ_DEFAULT_PASS 密码
–name=“名字” 指定容器名字
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 主机端口:容器端口
-v 挂载文件或目录 :前表示主机部分,:后表示容器部分。

注意映射容器端口

15672 是rabbitmq management管理界面默认访问端口
5672 是amqp默认端口
1883 是mqtt tcp协议默认端口
15675 是web_mqtt ws协议默认端口
15671 management监听端口,前台浏览器的控制界面
5672 5671 (AMQP 0-9-1 without and with TLS)
4368(epmd) epmd代表Erlang端口映射守护进程
25672 (Erlang distrubution)

进入容器内部
通过docker ps -a查看部署的mq容器id,在通过 docker exec -it 容器id /bin/bash 进入容器内部

配置MQTT插件

默认安装后我们需要手动开启rabbitmq_management插件,rabbitmq_mqtt插件和rabbitmq_web_mqtt插件。

注意:若用docker启动则启动参数一定加上-p 1883:1883
docker exec <容器ID> rabbitmq-plugins enable rabbitmq_management

#提供与后端服务交互使用,对应端口1883
docker exec <容器ID> rabbitmq-plugins enable rabbitmq_mqtt

#提供与前端交互使用,对应端口15675
docker exec <容器ID> rabbitmq-plugins enable rabbitmq_web_mqtt

MQTT开启后登录web系统可看到如下图
在这里插入图片描述

开启成功后这时,MQTT服务就搭建好了。现在可以测试,MQTT通讯了。使用rabbit 作为MQTT服务的话,需要创建 topic类型的交换机。交换机名作为订阅和发布消息的Topic
在这里插入图片描述

创建MQTT的交换机
创建一个名为MQTT的交换机,类型为Topic很重要。这时服务端就创建好了。

使用MQTT 协议默认的交换机 Exchange 为 amp.topic,而我们订阅的主题会在 Queues 注册一个客户端队列,路由 Routing key 就是我们设置的主题。
在这里插入图片描述
开放宿主机防火墙端口
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=1883/tcp --permanent
firewall-cmd --zone=public --add-port=15675/tcp --permanent
firewall-cmd --zone=public --add-port=15675/tcp --permanent
firewall-cmd --reload

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值