当前位置:   article > 正文

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

mosquitto docker搭建

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
  • 1

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

2、下载Image镜像

docker pull eclipse-mosquitto
  • 1

在这里插入图片描述

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
  • 1

在这里插入图片描述

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

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

5、配置用户和密码

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

  2. 查看容器

docker ps
  • 1
  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"
  • 1

其中:

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

其中:

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

7、测试步骤:

  1. 进入容器,打开命令窗口,执行订阅命令
mosquitto_sub -h localhost -t topic
  • 1
  1. 进入容器,开启新的命令窗口,执行发布命令
mosquitto_pub -h localhost -t topic -m "message"
  • 1
  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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

其他配置步骤类似。

5. 总结

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

6. 参考文档

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/1005860
推荐阅读
相关标签
  

闽ICP备14008679号