拉取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/13dtN0Mtx4lb9gNXkwTSP2Q?pwd=2ens
提取码:2ens
工具教程
作者:怒吼的萝卜