1 获取镜像:
docker pull eclipse-mosquitto:1.6.14
查看获取的镜像:
docker images
2 安装:
2.1 新建日志和数据目录:
mkdir -p /root/mosquitto/config
mkdir -p /root/mosquitto/data
mkdir -p /root/mosquitto/log
2.2 创建配置文件:
touch /root/mosquitto/config/mosquitto.conf
vim /root/mosquitto/config/mosquitto.conf
插入下面语句:
persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
persistence true: 开启持久化 ,默认为false 如果不开,信息,数据,链接会被存到内存中;
persistence_location :mqtt 容器中 数据持久化的地方,如果不写,会使用当前路径
log_dest file:mqtt 容器日子持久化的地方
2.2 安装:
docker run -d --name=mosquitto --privileged \
-p 1883:1883 -p 9001:9001 \
-v /root/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \
-v /root/mosquitto/data:/mosquitto/data \
-v /root/mosquitto/log:/mosquitto/log \
eclipse-mosquitto:1.6.14
–privileged 应用容器 获取宿主机root权限(特殊权限)
2.3 添加权限:
2.3.1 修改 /root/mosquitto/config/mosquitto.conf 添加以下语句
allow_anonymous false
password_file /mosquitto/config/pwfile.conf
2.3.2 进入容器:
docker exec -it mosquitto sh
2.3.3 创建密码文件:
touch /mosquitto/config/pwfile.conf
chmod -R 755 /mosquitto/config/pwfile.conf
2.3.4 创建用户和密码(比如:用户名:zhangsan 密码 zs123)
mosquitto_passwd -b /mosquitto/config/pwfile.conf zhangsan zs123
2.3.5 退出容器:
exit
2.3.6 重启容器:
docker restart mosquitto
2.4 连接:
2.4.1 window 下载MQTTBox:
https://www.microsoft.com/store/productId/9NBLGGH55JZG
2.4.2 链接:
1) 创建一个客户端:
填写客户端使用的mqtt 服务器地址及用户名和密码
然后进行保存
2)保存成功后进入如下的界面,顶部绿色“Connected”按钮表明当前 MQTT 连接已经成功:
3)订阅一个主题 test:
4) 在test 下发布信息:
5) 可以看到接收的信息:
参考:
1 docker 安装eclipse-mosquitto;
2 Docker - 通过容器安装部署Mosquitto服务教程(MQTT服务器)
3 eclipse-mosquitto 参数参考;