用docker方式 安装rabbitmq 并配置MQTT

简介: 用docker方式 安装rabbitmq 并配置MQTT
docker search rabbitmq
docker pull rabbitmq:3.8.1-management

安装带管理端的docker容器

docker run -d --hostname rabbitmq --name rabbitmq -v /home/mydata/rabbitmq/data:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie' rabbitmq:3.8.1-management

上面只是把数据文件放在外面,不做任何操作是可以正常的

建/home/mydata/rabbitmq 下面data,conf,log对应数据,配置与日志

useradd rabbitmq
chown rabbitmq:rabbitmq -R rabbitmq/ 把下面目录都变成rabbitmq用户
docker run -d --hostname rabbitmq --name rabbitmq -v /home/mydata/rabbitmq/data:/var/lib/rabbitmq -v /home/mydata/rabbitmq/conf:/etc/rabbitmq/ -v /home/mydata/rabbitmq/log:/var/log/rabbitmq/ -p 15672:15672 -p 5672:5672 -p 1883:1883 -p 15675:15675 -e RABBITMQ_ERLANG_COOKIE='rabbitmqCookie' rabbitmq:3.8.1-management

上面开始有问题,老说是config文件没有权限

[root@zxg mydata]# docker logs rabbitmq
touch: cannot touch '/etc/rabbitmq/rabbitmq.conf': Permission denied
docker cp -a rabbitmq:/etc/rabbitmq .

并用mv方式移动合适目录下

把配置文件拷贝到宿主就可以了,没有报错,正常了

  • 15672 是rabbitmq management管理界面默认访问端口
  • 5672 是amqp默认端口
  • 1883 是mqtt tcp协议默认端口
  • 15675 是web_mqtt ws协议默认端口
docker exec rabbitmq rabbitmq-plugins enable rabbitmq_management
docker exec rabbitmq rabbitmq-plugins enable rabbitmq_mqtt
docker exec rabbitmq rabbitmq-plugins enable rabbitmq_web_mqtt

也可以人工启动这些插件

配置防火墙

firewall-cmd --add-port=15672/tcp --permanent
firewall-cmd --add-port=5672/tcp --permanent
firewall-cmd --add-port=1883/tcp --permanent
firewall-cmd --add-port=15675/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all

http://192.168.33.112:15672/ 进入rabbitmq管理页面,初始用户guest密码是guest

用MQTT.fx可以测试MQTT

支持windows/linux/mac,请选择对应的版本进行安装,本例以Windows10为例,版本为1.7.1 。

下载地址: Index of /apps/mqttfx

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
3天前
|
jenkins 持续交付 数据安全/隐私保护
Docker 安装 Jenkins
Jenkins 是一个独立的开源自动化服务器,可用于自动化与构建、测试、交付或部署软件相关的各种任务。
22 1
|
3天前
|
Linux Docker 容器
安装新版本Docker报错container-selinux >= 2:2.74 - 蓝易云
以上步骤应该能够帮助你解决遇到的问题。如果问题仍然存在,你可能需要寻求专业的技术支持。
16 0
|
4天前
|
Ubuntu Linux Docker
window10下安装ubuntu系统以及docker使用
window10下安装ubuntu系统以及docker使用
|
5天前
|
消息中间件 网络安全 数据安全/隐私保护
MQ产品使用合集之在MQTT中,出现了 NO HEART 错误如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
19 2
|
5天前
|
消息中间件 存储 Apache
MQ产品使用合集之RocketMQ如果配置所有的ip,有些namesrv挂了的话,消息就发送失败了,消费也是失败的如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
21 2
|
5天前
|
消息中间件 监控 网络性能优化
MQ产品使用合集之对于 MQTT 设备上下线的通知管理,该怎么实现
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
17 1
|
5天前
|
并行计算 Ubuntu Docker
Docker环境Ubuntu20.04安装Python3.10版本
Docker环境Ubuntu20.04安装Python3.10版本
38 0
|
5天前
|
Ubuntu Docker 容器
Ubuntu 22.04.3 LTS_安装Docker
Ubuntu 22.04.3 LTS_安装Docker
49 1
|
5天前
|
应用服务中间件 PHP nginx
安装基于docker的php运行环境
安装基于docker的php运行环境
10 0
|
5天前
|
并行计算 Shell Docker
【环境配置】Ubuntu16.04安装nvidia-docker
【环境配置】Ubuntu16.04安装nvidia-docker
19 2