美文网首页
docker部署开源MQTT平台mosquitto

docker部署开源MQTT平台mosquitto

作者: zhanglb12 | 来源:发表于2023-09-21 21:26 被阅读0次
    一、安装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镜像。

    相关文章

      网友评论

          本文标题:docker部署开源MQTT平台mosquitto

          本文链接:https://www.haomeiwen.com/subject/nyizvdtx.html