首页 > 其他分享 >docker部署开源MQTT平台mosquitto

docker部署开源MQTT平台mosquitto

时间:2023-10-27 14:31:51浏览次数:33  
标签:log data mnt MQTT mosquitto docker root

一、安装docker

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

二、拉取Mosquitto Docker镜像

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

拉取mosquitto镜像:

# 或者拉取2.0.18版本
docker pull eclipse-mosquitto:2.0.18
三、创建mosquitto配置文件

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

# 创建文件夹
mkdir /mnt/docker-root/mosquitto
 
# 进入mosquitto文件夹
cd /mnt/docker-root/mosquitto
 
# 创建配置文件夹、日志文件夹
mkdir /mnt/docker-root/mosquitto/config
 
mkdir /mnt/docker-root/mosquitto/data
 
mkdir /mnt/docker-root/mosquitto/log

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

路径使用docker 的路径 不要写自己主机的路径

persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
listener 9001
port 1883
allow_anonymous true
四、创建mosquitto容器运行
docker run -itd --name mosquitto -p 1883:1883 -p 9001:9001 -v /mnt/docker-root/mosquitto/config:/mosquitto/config -v /mnt/docker-root/mosquitto/data:/mosquitto/data -v /mnt/docker-root/mosquitto/log:/mosquitto/log eclipse-mosquitto:2.0.18
 
docker run -d --name mosquitto -p 1883:1883 -p 9001:9001 -v /mnt/docker-root/mosquitto/config:/mosquitto/config -v /mnt/docker-root/mosquitto/data:/mosquitto/data -v /mnt/docker-root/mosquitto/log:/mosquitto/log eclipse-mosquitto:2.0.18

解释一下这个命令:

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

标签:log,data,mnt,MQTT,mosquitto,docker,root
From: https://blog.51cto.com/lzhang2016/8056347

相关文章

  • graalvm 23.1.0 独立nodejs docker 镜像&简单试用
    graaljsdocker镜像很简单就是下载官方包,集成下,然后进行一些简单的配置DockerfileFROMdebian:bullseye-backportsLABELauthor="rongfengliang"LABELemail="[email protected]"WORKDIR/opt/RUN/bin/cp/usr/share/zoneinfo/Asia/Shanghai/etc/localtime\&&am......
  • docker: Error response from daemon: Conflict. The container name "/web" is alrea
    问题:docker启动docker容器时报错docker:Errorresponsefromdaemon:Conflict.ThecontainernameisalreadyinusebycontainerYouhavetoremove(orrename)thatcontainertobeabletoreusethatname.解决办法:在此之前已经启动了相同名字的docker容器,Thecontai......
  • docker如何停止容器(docker如何停止容器进程)
    https://www.yzktw.com.cn/post/1303236.htmlDocker是一款流行的容器化平台,它允许用户创建、部署和运行容器。在使用Docker时,您可能需要停止容器以进行维护或其他操作。下面我们介绍几种停止Docker容器的方法。方法一:使用dockerstop命令dockerstop[容器名/容器id]这个命令......
  • podman/docker重启后自动运行容器
    背景今天发现云主机oom重启之后podman的容器没有自动运行,大概看了一下,是因为Podman不试用Daemon守护进城,所以podman启动后不自动启动容器。这里试用systemd进行自启动管理。方案可以使用podmangeneratesystemd生成并管理生成systemd文件#podmangenerate......
  • 本地docker搭 建开源MySQL审计平台 yearning
     简单介绍:Yearning是一个轻量级的Web端的MySQLSQL语句审核平台,提供查询审计,SQL审核,SQL回滚,自定义工作流等多种功能。Yearning的前端是基于Vue.js构建的,它还提供SQL语法高亮、自动补全和智能提示、可视化等。Yearning自身包含了一套通常适用的审核规范,基本上能满足日常需要,同......
  • linux用docker
    1.查看docker运行状态systemctlstatusdocker2.查看docker服务是否自启动systemctlis-enabled docker 3.查看docker下运行的所有容器4.启动docker systemctlstart docker5.启动docker下的容器docker-compose-fdocker-compose.yml up-d或启动指定的容器......
  • Docker
    Docker能够解决的问题——项目部署的问题大型项目组件比较多,容易出现兼容性问题开发、测试、生产环境有差异Docker如何解决依赖的兼容问题?将应用的lib(函数库)、Deps(依赖)、配置与应用一起打包将每个应用放到一个隔离容器去运行,避免相互干扰不同环境的操作系统......
  • kubernetes+docker+kubeadm快速安装
    1.Kubernetes1.27发布2023年4月13日,Kubernetes1.27正式发布,这是2023年的第一个版本。这个版本包括60项增强功能。其中18项增强功能进入Alpha、29项进入Beta,还有13项升级为Stable稳定版。2.环境准备2.1主机操作系统操作系统及版本备注CentOS7.9......
  • 通讯 --- C# .NET CORE MQTT 心跳服务
    转自:https://www.cnblogs.com/hkzw/p/17689443.htmlMQTT服务可以自行学习,这里只是记录一下写的结果,粘贴即用。首先引入包 MQTTnet,注意这个包这里的代码是4.0一下版本我用的3.1.2版本的4.以上是另外的写法,该内容中4不支持我 直接下降版本到3.1.2可以了。如果你一......
  • ASP.NET Core 使用 MQTTnet 实现 MQTT 通讯协议
    转自:https://www.twle.cn/t/19383MQTT是啥呢?MQTT,英文全称 MessageQueuingTelemetryTransport,是一种基于 发布/订阅 模式的轻量级的消息传输协议,由IBM公司出品。物联网兴起后,MQTT因为够轻量,低带宽和低延时而被推上浪潮之巅。其实,MQTT几乎就是专门为网络受限设备、低......