阿里云部署开源MQTT平台mosquitto的docker操作

MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,广泛用于物联网和传感器网络中。Mosquitto是一个流行的开源MQTT代理,可以在Docker中进行配置和部署。本文将详细介绍如何在Docker中配置Mosquitto MQTT代理,以便在容器化环境中运行和管理MQTT通信。

一、安装docker

在开始之前,确保你的系统上已经安装了Docker。Docker提供了一个开放的平台,可以在容器中打包、分发和运行应用程序。你可以从Docker官方网站下载和安装适合你操作系统的Docker版本。

二、拉取Mosquitto Docker镜像

这里我们以阿里云的Ubuntu系统为例。想要在docker中部署MQTT的服务就得先找好一个开源平台,像mosquitto、EMQ X Broker 等都是开源的MQTT服务,这里我们以搭建mosquitto为例。

拉取mosquitto镜像:

docker pull eclipse-mosquitto

# 或者拉取1.6.14版本
docker pull eclipse-mosquitto:1.6.14

这里将拉取最新的mosquitto镜像到docker中。

三、创建mosquitto配置文件

在运行容器之前我们需要先创建一个配置文件,定义mosquitto的日志、配置等文件的存储路径,我们在服务器的根目录下创建一个文件夹。

# 创建文件夹
mkdir mosquitto

# 进入mosquitto文件夹
cd mosquitto

# 创建配置文件夹、日志文件夹
mkdir config

mkdir data

mkdir log

在config文件夹下编辑配置文件mosquitto.conf,并添加下列配置内容;

persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log

这里的存储地址可以根据自己的需求进行调整

四、创建mosquitto容器运行

在终端或命令行界面中运行以下命令来运行Mosquitto容器:

docker run -itd --name mosquitto -p 9042:1883 -p 9001:9001 -v /mosquitto/config:/mosquitto/config -v /mosquitto/data:/mosquitto/data -v /mosquitto/log:/mosquitto/log eclipse-mosquitto:1.6.14

解释一下这个命令:

  • -itd:以交互模式运行容器,启动之后在后台运行,方便查看输出日志和控制台信息。
  • -p 1883:1883:将宿主机的1883端口映射到容器内的1883端口,以便可以通过该端口与MQTT代理进行通信。
  • --name 容器名称
  • -v /mosquitto/config:/mosquitto/config:将本地的mosquitto-config文件夹挂载到容器内的/mosquitto/config路径,用于配置文件的持久化存储。
  • -v /mosquitto/data:/mosquitto/data:将本地的mosquitto-data文件夹挂载到容器内的/mosquitto/data路径,用于数据的持久化存储。
  • -v /mosquitto/log:/mosquitto/log:将本地的mosquitto-log文件夹挂载到容器内的/mosquitto/log路径,用于日志的持久化存储。
  • eclipse-mosquitto:指定要运行的Mosquitto镜像。

根据实际情况,将/mosquitto/config、/mosquitto/data和/mosquitto/log替换为你本地系统上的相应路径。

运行该命令后,Docker将会创建并运行Mosquitto容器,配置文件和数据将被挂载到容器中,使得配置的持久化和数据的保存得以实现。

docker ps

有看到mosquitto的容器名称证明启动成功。

五、测试MQTT通讯

我这里用到的是simulate-device.exe这个工具。工具下载地址:https://download.csdn.net/download/qq_45758854/88279562

看到connect变为灰色证明连接成功。我们可以随便订阅一个主题。

发布:

接收的信息:

如果一切正常,你应该能够在订阅者的终端中看到接收到的消息。

至此,你已经成功在Docker中配置和运行了Mosquitto MQTT代理,并进行了简单的MQTT通信测试。

六、总结

在本文中,我们学习了如何在Docker中配置Mosquitto MQTT代理。通过安装Docker、获取Mosquitto Docker镜像、创建配置文件、运行Mosquitto容器,并进行MQTT通信测试,我们成功实现了在容器化环境中运行和管理MQTT代理的目标。

使用Docker进行配置和部署MQTT代理,可以极大地简化安装和管理过程,并提供了更好的可移植性和可扩展性。无论是在本地开发环境还是在生产环境中,使用Docker可以快速搭建MQTT通信基础设施。

相关推荐
明 庭1 小时前
Ubuntu下通过Docker部署NGINX服务器
服务器·ubuntu·docker
dessler3 小时前
Docker-run命令详细讲解
linux·运维·后端·docker
aherhuo4 小时前
kubevirt网络
linux·云原生·容器·kubernetes
在肯德基吃麻辣烫4 小时前
使用开源在线聊天工具Fiora轻松搭建个性化聊天平台在线交流
开源
陌北v14 小时前
Docker Compose 配置指南
运维·docker·容器·docker-compose
catoop4 小时前
K8s 无头服务(Headless Service)
云原生·容器·kubernetes
是小崔啊4 小时前
开源轮子 - EasyExcel01(核心api)
java·开发语言·开源·excel·阿里巴巴
阿里嘎多学长4 小时前
docker怎么部署高斯数据库
运维·数据库·docker·容器
明 庭5 小时前
Ubuntu下通过Docker部署Caddy服务器
服务器·ubuntu·docker
G_whang6 小时前
windos 安装docker
运维·docker·容器