一、在目录/usr/local/mqtt创建
mkdir config data log sh
二、配置文件
vim config/mosquitto.conf
# 写入以下内容
persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
allow_anonymous true listener 1883
----------------------------------------------------------------------
vim sh/pwd.sh
# 写入以下内容
容器内执行
#对于passworf_file,可以复制一份模板,或者创建一个空文件
touch /mosquitto/config/pwfile.conf
chmod -R 755 /mosquitto/config/pwfile.conf
# 使用mosquitto_passwd命令创建用户,第一个admin是用户名,第二个123456是密码
mosquitto_passwd -b /mosquitto/config/pwfile.conf admin 123456
#之后重启容器 使用mqtt.fx连接
-------------------------------------------------------------------------
vim sh/topic.sh
# 写入以下内容
mosquitto_sub -v -t $1 > /mosquitto/log/$1.out &
或者下面这种可以支持带/反斜杠,(选一个就好)
mosquitto_sub -v -t $1 > /mosquitto/log/${1##*/}.log &
三、授权
chmod -R 755 /usr/local/mqtt chmod -R 777 /usr/local/mqtt/log
四、启动docker
docker run -it --name=mosquitto --privileged -p 1883:1883 -p 9001:9001 -v /usr/local/mqtt/config/mosquitto.conf:/mosquitto/config/mosquitto.conf -v /usr/local/mqtt/data:/mosquitto/data -v /usr/local/mqtt/log:/mosquitto/log -v /usr/local/mqtt/sh:/sh -d eclipse-mosquitto
五、执行脚本
进入容器
#最大权限
docker exec -it -u 0 id sh
执行 sh/pwd.sh (要重启才能连接)
执行 sh/topic.sh topic-name (重启后再执行)
退出容器
在目录
/usr/local/mqtt/log
tail -f topic-name.out
最后进入MQTT.fx 推送即可
参考Docker 安装MQTT服务 mosquitto_风浪云HH的博客-CSDN博客_docker mosquitto