Docker:docker部署mqtt(eclipse-mosquitto:2.0.15)服务

发布时间 2024-01-12 14:05:47作者: 怒吼的萝卜

拉取MQTT镜像

# docker拉取镜像
docker pull eclipse-mosquitto:2.0.15

创建配置文件

文件创建路径自定义,我的创建在 /home/mqtt/mosquitto/config/ 目录下,有两个文件 mosquitto.conf 和 passwd

mosquitto.conf 配置如下

# 默认端口
#port 1883
# 监听端口
#listener 9001
# 以websocket方式连接mqtt服务
#protocol websockets
persistence true
# 数据存储路径
persistence_location /mosquitto/data/
# 运行日志存储路劲
log_dest file /mosquitto/log/mosquitto.log
# 用户文件存储路径
password_file /mosquitto/config/passwd
per_listener_settings false
allow_anonymous false

passwd 是用户文件,主要用来存储用户信息的,需要启动容器之后才能创建用户。

启动容器

# 启动容器
docker run --name mqtt -p 1883:1883 -p 9001:9001 -v /home/mqtt/config:/mosquitto/config -v /home/mqtt/data:/mosquitto/data -itd eclipse-mosquitto:2.0.15

## -p 1883:1883    就是mqtt服务默认端口
## -p 9001:9001    (用不到可以不映射)监听9001端口,可以websocket的方式连接mosquitto服务
## -v /home/mqtt/config:/mosquitto/config    映射自定义配置文件的路径
## -v /home/mqtt/data:/mosquitto/data    映射自定义数据存储的路径

创建用户

方式一

 不进入容器直接创建

# 使用exec 连接容器进行创建,会提示创建自定义密码
docker exec -it mqtt sh -c "mosquitto_passwd -c /mosquitto/config/passwd 自定义用户名"

# 重新加载配置文件
docker exec -it mqtt sh -c "kill -s HUP 1"

# 删除某个用户
docker exec -it mqtt sh -c "mosquitto_passwd -D mosquitto/config/passwd 某个用户名"

方式二

进入容器创建

# 进入mqtt容器
docker exec -it mqtt sh

# 使用 mosquitto_passwd 命令创建
mosquitto_passwd -b /mosquitto/config/passwd 自定义用户名 自定义密码

# 删除用户
mosquitto_passwd -D mosquitto/config/passwd 某个用户名

# 退出容器后,重启mqtt服务
dokcer restart mqtt

 测试连接

 工具下载

1. MQTTX 下载地址:MQTT X:跨平台 MQTT 5.0 桌面客户端工具 

2. MQTTSimulateDevice V1.0.7 下载地址:链接:https://pan.baidu.com/s/1bMA9wCOhGi-NxQBETxXT3w?pwd=065m 
提取码:065m

工具教程