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 参数参考;

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐