Docker部署MQTT服务mosquitto
简介
MQTT是什么
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
Mosquitto是什么
Eclipse Mosquitto是一个开源消息代理,实现了MQTT协议版本5.0, 3.1.1和 3.1 。Mosquitto轻量,适用于低功耗单板计算机到完整服务器的所有设备。Mosquitto项目还提供了用于实现MQTT客户端的C库以及非常受欢迎的mosquitto_pub和mosquitto_sub命令行MQTT客户端。
- Community page: http://mqtt.org/
- MQTT v3.1.1 standard: https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html
- MQTT v5.0 standard: https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html
docker部署
首先建立对应的目录用来存储持久化数据和配置信息
创建目录
1 | mkdir -p /home/ubuntu/mosquitto/data |
data 目录 用来保存持久化数据,如果不需要可以不建立(mosquitto配置文件去除持久化的相应设置,docker容器去除目录映射)
因为是docker部署,不需要mosquitto把日志输出到文件,直接通过 docker logs <容器名>命令即可查看
修改mosquitto配置
1 | # 消息持久存储(如果不需要持久化可去这两条) |
创建密码文件
user 替换成用户名
passwd 替换成密码
如果不替换则生成了一个用户名为user,密码为passwd的账户
1 | docker run --rm -it \ |
运行镜像
1 | docker run -it --name=mosquitto -p 1883:1883 -p 9001:9001 \ |
mqtt中继
在配置文件中增加
addr代表要中继的mqtt服务地址
mqtt-bridge是名字,可以任意起
topic stat/# both stat/#为要中继的主题,如果需要中继全部就写#
1 | connection mqtt-bridge |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 klzy.xyz!

