Docker部署Eclipse Mosquitto开源MQTT的消息代理环境步骤(实践)

news2025/1/10 19:05:36

1.前言

Eclipse Mosquitto是一个开源(EPL/EDL许可)的消息代理,实现了MQTT协议的版本5.0、3.1.1和3.1。Mosquitto是轻量级的,适用于从低功耗单板计算机到完整服务器的所有设备。

MQTT协议提供了一种轻量级的消息传输方法,采用发布/订阅模型。这使得它非常适合用于物联网消息传递,例如低功耗传感器或手机、嵌入式计算机或微控制器等移动设备。

Mosquitto项目还提供了一个用于实现MQTT客户端的C库,以及非常流行的mosquitto_pub和mosquitto_sub命令行MQTT客户端。

Mosquitto是Eclipse Foundation的一部分,是iot.eclipse.org项目的一部分。该项目由Cedalo推动开发。在这里插入图片描述
在GitHub上拥有8.3KStarts.项目的仓库地址为:mosquitto
在这里插入图片描述

2. docker 安装Eclipse Mosquitto

1、执行搜索指令找到官方镜像

docker search mosquitto

在这里插入图片描述
我们下载带有OFFICIAL标志的镜像

2、下载Image镜像

docker pull eclipse-mosquitto

在这里插入图片描述

3、配置映射目录

在这里插入图片描述

4、配置container容器到指定目录和映射端口

docker run -d --name my-mosquitto -p 1883:1883 -p 9001:9001 -v /d/docker/mosquitto/data:/mosquitto/data -v /d/docker/mosquitto/log:/mosquitto/log  -v /d/docker/mosquitto/config:/mosquitto/config eclipse-mosquitto

在这里插入图片描述

创建配置文件,并且写入配置内容,保存完毕后重启。

listener 1883
listener 9001
protocol websockets
persistence true
persistence_file mosquitto.db
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
#Authentication
allow_anonymous true
password_file /mosquitto/config/pwfile

为了方便测试,我在这里开启了匿名访问allow_anonymous true。生产环境,应当改为False.

5、配置用户和密码

  1. 在config文件夹新增空文件pwfile.conf

  2. 查看容器

docker ps
  1. 进入容器,执行命令

docker exec -it b7c36ec27a62 sh
mosquitto_passwd -b /mosquitto/config/pwfile.conf root root

在这里插入图片描述
4. 查看生成密码文件内容
在这里插入图片描述

6、命令行测试

mosquitto_pub 和 mosquitto_sub 是 Mosquitto MQTT 代理的命令行客户端工具,用于发布(publish)和订阅(subscribe)MQTT 消息。

  • mosquitto_pub:用于发布 MQTT 消息到指定的主题(topic)。
  • mosquitto_sub:用于订阅 MQTT 主题,并接收对应主题下的消息。
    这些工具通常用于测试 MQTT 代理的功能、与 MQTT 代理进行交互,或者在脚本中执行一些 MQTT 消息发布和订阅的操作。

它们的基本用法示例:
mosquitto_pub:

mosquitto_pub -h <hostname> -t <topic> -m "message"

其中:

  • 是 MQTT 代理的主机名或 IP 地址。
  • 是要发布消息到的 MQTT 主题。
  • “message” 是要发布的消息内容。
    mosquitto_sub:
mosquitto_sub -h <hostname> -t <topic>

其中:

  • 是 MQTT 代理的主机名或 IP 地址。
  • 是要订阅的 MQTT 主题。
    使用这些命令,可以轻松地在命令行界面上与 MQTT 代理进行通信,发布和订阅消息。

7、测试步骤:

  1. 进入容器,打开命令窗口,执行订阅命令
mosquitto_sub -h localhost -t topic
  1. 进入容器,开启新的命令窗口,执行发布命令
mosquitto_pub -h localhost -t topic -m "message"
  1. 展示执行结果
    在这里插入图片描述

3. 配置客户端

  1. 下载mqtt.fx客户端进行连接测试。直达下载链接
    在这里插入图片描述
  2. 配置连接
    在这里插入图片描述
  3. 测试连接

连接成功,发布Key,值为value-2024
在这里插入图片描述
订阅Key,接收值为:
在这里插入图片描述

4.其他安装方法

  1. 应用程序安装

如果你觉得Docker安装Eclipse Mosquitto比较麻烦的话,也可以直接安装应用程序。官网详细介绍安装步骤:

How to Install the Mosquitto MQTT Broker on Windows? - IoTEDU

  1. Docker Compose安装

此文章有详细的安装教学:Setting up the Mosquitto MQTT Broker using Docker Compose - Pi My Life Up

docker-compose 代码如下:

services:
  mosquitto:
    image: eclipse-mosquitto
    container_name: mosquitto
    volumes:
      - ./config:/mosquitto/config
      - ./data:/mosquitto/data
      - ./log:/mosquitto/log
    ports:
      - 1883:1883
      - 9001:9001
    stdin_open: true 
    tty: true

其他配置步骤类似。

5. 总结

环境安装只是开发的第一步,后续我们将在此基础上进行MQTT的开发。

6. 参考文档

  • mqtt.fx | 一款超级好用的Mqtt客户端软件(下载、安装、使用详解)-CSDN博客

  • docker安装eclipse-mosquitto记录(实践可用)-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2047222.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

渗透测试-行业术语

1.肉鸡 肉鸡用来比喻哪些可以随意被我们控制的计算机&#xff0c;可以是普通的个人电脑&#xff0c;也可以是大型服务器或者其他网络设备&#xff0c;我们可以像操作自己的电脑一样操作他们而不被发觉。 2.木马 表面上伪装成了正常程序&#xff0c;但是当程序被运行的时候&a…

【gitlab】gitlab-ce:17.3.0-ce.0 1:使用docker engine安装

ce版本必须配置代理。 极狐版本可以直接pull 社区版GitLab不支持Alibaba Cloud Linux 3,本操作以Ubuntu/Debian系统为例进行说明,其他操作系统安装说明,请参见安装社区版GitLab。 docker 环境重启 sudo systemctl daemon-reload sudo systemctl restart docker脚本安装 安裝…

趣味算法------约瑟夫环

目录 问题概述&#xff1a; 问题解析&#xff1a; 图文示意&#xff1a; 处决开始&#xff1a; 第一轮结束&#xff1a; 第二轮结束&#xff1a; 最后一轮&#xff1a; 寻找规律&#xff1a; 最终思路&#xff1a; 具体代码&#xff1a; 总结&#xff1a; 问题概述&…

【Pytorch02】开发环境准备

开发环境准备 安装教程 视频 开发环境 Python 3.7 Anaconda 3.5.1CUDA 10.0Pycharm Community 检测是否安装完毕 conda --version # 检查Anaconda是否安装完毕 nvcc -V # 检查CUDA是否安装完毕

ES-分布式搜索引擎

DSL查询文档 精确查询 、 我附近的人 实例 根据页码跳转无法使用 高亮

Flandre Scarlet的精致蕾丝上半身造型,金发飘逸

Flandre Scarlet戴zun帽&#xff0c;上半身细节极其精致的蕾丝装饰&#xff0c;面带微笑&#xff0c;双臂自然下垂&#xff0c;金色头发飘逸。 正向提示词 Flandre Scarlet,zun hat,extremely detailed lace,:) , upper body,arms at sides,lace,golden hairFlandre Scarlet&…

AI学习记录 - transformers的decoder和encoder中的自注意力矩阵和掩码矩阵的数据处理

掩码掩码&#xff0c;指的是掩盖住后面的词汇的词向量对我当前词汇造成影响。把PAD字符设置成负无穷大&#xff0c;概念上不叫掩码&#xff0c;只是计算方式和掩码一样。 怎么生成掩码&#xff0c;在非掩码注意力矩阵中&#xff0c;把PAD词向量每个维度设置成负无穷大&#xf…

基于web框架的协同过滤的美食推荐系统【数据爬虫、管理系统、数据可更新、样式可调整】

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍研究背景研究的目的与意义协同过滤算法基于用户的协同过滤算法定义基于物品的协同过滤算法的定义 数据库设计db_food&#xff08;美食信息表&#xff09;db_collect&#xff08;美食…

加载torch报错及如何解决

Failed to import pytorch fbgemm.dll or one of its dependencies is missing. 这往往是你的电脑缺少了某些微软的dll文件。所以报错了。 解决办法 前往https://www.dllme.com/dll/files/libomp140_x86_64?sortupload&arch0x8664 点击。 按照你的电脑是否为64位进行选择…

vue3-03-创建响应式数据的几种方法

响应式数据 一、 ref 创建&#xff1a;响应式数据1&#xff09;ref 创建&#xff1a;基本类型的响应式数据2&#xff09;ref 创建&#xff1a;对象类型的响应式数据3&#xff09;volar 插件自动添加 .value4&#xff09;customRef 自定义 ref 二、 reactive 创建&#xff1a;响…

联想2025校招 技术研究方向试卷

目录 1. 第一题2. 第二题 ⏰ 时间&#xff1a;2024/08/16 &#x1f504; 输入输出&#xff1a;ACM格式 ⏳ 时长&#xff1a;1.5h 本试卷还有选择题部分&#xff0c;但这部分比较简单就不再展示。 1. 第一题 题目描述 小明正在神奇苹果园里工作。这个苹果园里一共有 n n n 棵…

C#堆排序算法

前言 堆排序是一种高效的排序算法&#xff0c;基于二叉堆数据结构实现。它具有稳定性、时间复杂度为O(nlogn)和空间复杂度为O(1)的特点。 堆排序实现原理 构建最大堆&#xff1a;将待排序数组构建成一个最大堆&#xff0c;即满足父节点大于等于子节点的特性。将堆顶元素与最后…

海康VisionMaster使用学习笔记4-快速匹配模块

快速匹配模块 快速匹配包括基本参数,特征模板,运行参数,结果显示 基本参数 可以修改图像源和模块的ROI区域. 特征模版 可以配置管理所有的模版,点击创建可以新增模版,也可以通过载入加载本地的模型 建立新模版 点击创建,可以选择当前图像或本地图像进行建模 模版存图按…

【ASFF】《Learning Spatial Fusion for Single-Shot Object Detection》

arXiv-2019 https://github.com/GOATmessi7/ASFF 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method4.1 Strong Baseline4.2 Adaptively Spatial Feature Fusion4.2.1 Feature Resizing4.2.2 Adaptive Fusion 4.3 Consistency Propert…

DVWA | CSRF(LowMedium)攻击的渗透实践

目录 概述 Low Medium 概述 CSRF&#xff08;Cross-Site Request Forgery&#xff0c;跨站请求伪造&#xff09; 是一种网络攻击方式。 通过伪造当前用户的行为&#xff0c;让目标服务器误以为请求由当前用户发起&#xff0c;并利用当前用户权限实现业务请求伪造。 例如&a…

如何将excel以文本形式储存的数字一键转换为数字

有时候一些软件给出的数据格式很恶心&#xff0c;为了方便计算常常以数字粘贴到新表&#xff0c;但随之而来新问题&#xff0c;以文本储存的公式无法用公式计算&#xff0c;怎么办啊 方法一&#xff1a;使用“转换为数字”功能 (对数字少时用&#xff09; 当Excel检测到某个单…

得到任务式 大模型应用开发学习方案

根据您提供的文档内容以及您制定的大模型应用开发学习方案&#xff0c;我们可以进一步细化任务式学习的计划方案。以下是具体的任务式学习方案&#xff1a; 任务设计 初级任务 大模型概述&#xff1a;阅读相关资料&#xff0c;总结大模型的概念、发展历程和应用领域。深度学…

STM32定时器输入捕获功能

用于测频率测占空比 IC(Input Capture)输入捕获 输入捕获模式下&#xff0c;当通道输入引脚出现指定电平跳变&#xff08;上升沿/下降沿&#xff09;时&#xff0c;会让当前CNT的值将被锁存到CCR中&#xff0c;可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数…

数字化转型底座-盘古信息IMS OS,可支撑构建MES/WMS/QCS/IoT等工业软件

在当今这个数字化浪潮汹涌的时代&#xff0c;众多企业纷纷踏上数字化转型之路。对于部分想自研工业软件的企业来说&#xff0c;一个强大、灵活且可扩展的数字化底座显得尤为重要。盘古信息IMS OS&#xff0c;&#xff0c;正是这样一款能够支撑构建MES&#xff08;制造执行系统&…

SystemUI下拉框新增音量控制条

Android产品下拉框一直只有亮度条没有音量控制条。 为了方便控制音量&#xff0c;普遍都是底部导航栏添加音量加减按钮&#xff0c;在Android10以后&#xff0c;大家普遍用上了手势导航&#xff0c;去掉底部导航栏。 目前需要再下拉框中可以直接控制音量。 文章目录 前言需求及…