当前位置:首页 > 未分类 > 正文内容

群晖DOCKER安装MQTT

jxcq4年前 (2022-05-27)未分类135

1、打开DOCKER注册表搜索mqtt

2、选择官方镜像。

3、双击eclipse-mosquitto下载。选择latest(本来用的版本是1.6.9)

4、点击下载好的镜像文件创建容器

5、点击高级—网络—-勾选与docker host相同的网络,勾选下启用自动重新启动。

6、点击确定

7、双击eclipse-mosquitto容器—-进入终端机,(创建自己的MQTT用户名和密码)

8、点击通过命令方式启动 –输入命令–  mosquitto_passwd -c pwfile.example hass(这个hass为你自己的用户名)

9、输入完后确定–黑色的框框里面会有提示输入密码

10、命令行安装eclipse-mosquitto(MQTT)

未挂载到本地

docker run -it  --name MQTT --privileged --restart=unless-stopped -e TZ=Asia/Shanghai --network=host eclipse-mosquitto:1.6.14

挂载到本地的安装方法

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 /mnt/data-64G/docker/mosquitto/config
mkdir -p /mnt/data-64G/docker/mosquitto/data
mkdir -p /mnt/data-64G/docker/mosquitto/log

(3)然后执行如下命令创建初始化配置文件:
1
vi /mnt/data-64G/docker/mosquitto/config/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 /mnt/data-64G/docker/mosquitto
chmod -R 777 /mnt/data-64G/docker/mosquitto/log

(6)最后执行如下命令即可启动 mosquitto 容器:
1
2
3
4
5
6
docker run -d --name=mosquitto --privileged \
-p 1883:1883 -p 9001:9001 \
-v /mnt/data-64G/docker/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \
-v /mnt/data-64G/docker/mosquitto/data:/mosquitto/data \
-v /mnt/data-64G/docker/mosquitto/log:/mosquitto/log \
eclipse-mosquitto

  • 注意:如果使用最新的 2.x 版本 Mosquitto,可能会出现启动后客户端工具无法连接上服务器的情况,我们可以改用 1.x 版本即可。

1
2
3
4
5
6
docker run -d --name=mosquitto --privileged \
-p 1883:1883 -p 9001:9001 \
-v /mnt/data-64G/docker/mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \
-v /mnt/data-64G/docker/mosquitto/data:/mosquitto/data \
-v /mnt/data-64G/docker/mosquitto/log:/mosquitto/log \
eclipse-mosquitto:1.6.14

4,连接测试

    mosquitto 服务启动后,我们可以使用 MQTTBox 这个客户端工具测试消息的发布和订阅,具体用法可以参考我之前写的文章:MQTT系列教程3(客户端工具MQTTBox的安装和使用)
原文:Docker - 通过容器安装部署Mosquitto服务教程(MQTT服务器)

附:配置权限

(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





扫描二维码推送至手机访问。

版权声明:本文由小强的小站发布,如需转载请注明出处。

本文链接:https://zblog.dragon2024.cloudns.ch/?id=6

分享给朋友:

“群晖DOCKER安装MQTT” 的相关文章

OpenWrt中使用wireguard教程|一个端口访问局域网内所有设备(如群晖NAS,路由器)

OpenWrt安装WireGuard命令(eSir精品小包已集成WireGuard,无需安装) opkg update opkg install luci-proto-wireguard luci-app-wireguard wireguard kmod-wireguard wireguard-...

TC1-A2-mqtt-配置

https://github.com/yakinchang/phicomm_tc1_a2 固件配置获取插排分配到的 IP(根据自己的网络环境自行解决),IP 以 10.10.9.134 为例访问插排的 http 接口,获取插排状态,用户名密码都是 admin支持的接口列表:修改和查询wifi:htt...

debian安装docker通用方法

脚本安装wget -qO- get.docker.com | bash首先就是老方法卸载旧版本dockersudo apt-get remove docker docker-engine docker.io containerd runcsudo apt-get update安装软件包以允许使用 基...

beellink mini 905X2-TVbox arm-debian下用QEMU软件虚拟x86_64环境安装mikrotik routeos-chr的尝试

beellink mini 905X2-TVbox arm-debian下用QEMU软件虚拟x86_64环境安装mikrotik routeos-chr的尝试

sudo apt-get install qemusudo apt-get install qemu-system-x86sudo apt-get install qemu-system-armsudo apt-get install qemu-utils#apt-install libsdl1.2...

ESXI8-RDM直通配置【指定硬盘直通】

ESXI8-RDM直通配置【指定硬盘直通】

1、RDM直通配置【指定硬盘直通】1、查询ESXI系统所在硬盘的UUIDESXI web界面——存储——数据存储——【自己存储的名字】——产看并记录下UUID(不用查直通硬盘的UUID)要查现有数据的uuid(datastroe1)         ...

debian12下解决EXT4-fs error (/dev/nvme0n1p1):comm ext4lazyinit:bg 16:bad block bitmap checksum

安装smartctl软件sudo apt-get install smartmontools    # Debian/Ubuntusudo yum install smartmontools        # RedHat/CentOSsu...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。