Docker – 通过容器安装部署Mosquitto服务教程(MQTT服务器)
1,MQTT 介绍
MQTT 是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT 协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛:
- 在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。
- 其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
2,Mosquitto 介绍
Mosquitto 是一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。
3,安装步骤
(1)首先执行如下命令将镜像下载到本地:
1
|
docker pull eclipse-mosquitto |
(2)接着执行如下命令创建目录:
1
2
3
|
mkdir -p /mosquitto/config mkdir -p /mosquitto/data mkdir -p /mosquitto/log |
(3)然后执行如下命令创建初始化配置文件:
1
|
vi /mosquitto/config/mosquitto.conf |
#此处是个坑,一定要先运行此步,否则 docker run创建的是一个 mosquitto.conf
文件夹
(4)在配置文件中添加如下内容,然后保存退出。
1
2
3
|
persistence true persistence_location /mosquitto/data log_dest file /mosquitto/log/mosquitto.log |
(5)接着执行如下命令为目录授权(其中日志目录要最大权限):
1
2
|
chmod -R 755 /mosquitto chmod -R 777 /mosquitto/log |
(6)最后执行如下命令即可启动 mosquitto 容器:
1
2
3
4
5
6
|
docker run -d --name=mosquitto --privileged \ -p 1883:1883 -p 9001:9001 \ -v /mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \ -v /mosquitto/data:/mosquitto/data \ -v /mosquitto/log:/mosquitto/log \ eclipse-mosquitto |
4,连接测试
mosquitto 服务启动后,我们可以使用 MQTTBox 这个客户端工具测试消息的发布和订阅,具体用法可以参考我之前写的文章:MQTT系列教程3(客户端工具MQTTBox的安装和使用)
附:配置权限
(1)有时为了安全我们希望连接 mosquitto 服务时需要用户名密码,首先修改配置文件(/mosquitto/config/mosquitto.conf),添加以下配置:
1
2
3
4
|
# 关闭匿名模式 allow_anonymous false # 指定密码文件 password_file /mosquitto/config/pwfile.conf |
(2)接着执行如下命令进入容器:
1
|
docker exec -it mosquitto sh |
(3)执行如下命令建立 pwfile.conf 文件,并设置权限:
1
2
|
touch /mosquitto/config/pwfile.conf chmod -R 755 /mosquitto/config/pwfile.conf |
(4)然后使用 mosquitto_passwd 命令创建用户(比如下面我们创建了一个名为 hangge 的用户,密码为 123),添加完毕后执行 exit 退出容器。
1
|
mosquitto_passwd -b /mosquitto/config/pwfile.conf hangge 123 |
(5)最后执行如下命令启动容器,这样就为 mosquitto 服务增加了权限验证功能,需要使用我们前面创建的用户密码才能连接。
1
|
docker restart mosquitto |
原文出自:www.hangge.com 转载请保留原文链接:https://www.hangge.com/blog/cache/detail_2896.html
版权声明:
作者:Jays
链接:https://ijays.com/2020/11/docker-run-mosquitto.html
来源:颓废的美
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论