通过Docker Compose安装MQTT

这篇具有很好参考价值的文章主要介绍了通过Docker Compose安装MQTT。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、文件和目录说明

1、MQTT安装时的文件和目录

EMQX 安装完成后会创建一些目录用来存放运行文件和配置文件,存储数据以及记录日志。

不同安装方式得到的文件和目录位置有所不同,具体如下:

通过Docker Compose安装MQTT,MQTT,Docker安装MQTT
注意:

  • 压缩包解压安装时,目录相对于软件所在目录;
  • Docker 容器使用压缩包解压安装的方式,软件安装于 /opt/emqx 目录中
  • data、log、plugins 目录可以通过配置文件设置,建议将 data 目录挂载至高性能磁盘以获得更好的性能。但对于属于同一集群的节点, data 目录的配置应该相同。

2、文件和目录说明

这里介绍一下其中的部分目录,其中包含的文件和子文件夹。

通过Docker Compose安装MQTT,MQTT,Docker安装MQTT
注意:
EMQX 的配置项存储在 etc 和 data/configs 目录下,二者的主要区别是 etc 目录存储只读的配置文件,用户通过 Dashboard 和 REST API 提交的配置将被保存到 data/configs 目录下,并支持在运行时进行热更新。

EMQX 读取这些配置并将其合并转化为 Erlang 原生配置文件格式,以便在运行时应用这些配置。

配置文件手册:https://www.emqx.io/docs/zh/v5.1/configuration/configuration.html

二、通过Docker Compose安装MQTT

1、下载emqx-5.1.6的安装包

  • 下载地址:https://www.emqx.com/zh/try?product=broker

通过Docker Compose安装MQTT,MQTT,Docker安装MQTT

后面通过 Docker Compose启动时,发现报错,会提示我们缺少一些文件等问题。所以,我们提前将下载压缩包中需要的文件复制到我们映射的数据卷中。文件在压缩包里面的 /opt/emqx/中。

通过我再三的试错摸索,emqx-5.1.6版本需要提前把下面几个文件复制到我们对应的数据卷中。

└── emqx
    ├── data
    │   └── configs
    ├── etc
        ├── acl.conf
        ├── certs
        │   ├── cacert.pem
        │   ├── cert.pem
        │   ├── client-cert.pem
        │   ├── client-key.pem
        │   ├── key.pem
        │   └── README
        ├── emqx.conf
        └── vm.args

2、准备文件和目录

1)在任意目录创建一个 mqtt_emqx5文件夹和数据卷所挂载的目录。

[root@centos7 ~]# mkdir /usr/local/src/mqtt_emqx5
[root@centos7 ~]# cd /usr/local/src/mqtt_emqx5
# 数据卷
[root@centos7 mqtt_emqx5]# mkdir -p ./emqx/data
[root@centos7 mqtt_emqx5]# mkdir -p ./emqx/etc
[root@centos7 mqtt_emqx5]# mkdir -p ./emqx/log

2)将上面压缩包中提到的那几个文件复制到我们的数据卷目录中

# 复制完之后,给挂载目录赋予权限
[root@centos7 mqtt_emqx5]# chmod 777 -R ./emqx/

创建并编写docker-compose.yaml

3)创建并编写docker-compose.yaml

[root@centos7 mqtt_emqx5]# cat docker-compose.yaml
version: '3.7'

services:
  emqx5_s1:
    image: "emqx/emqx:5.1.6"
    container_name: "emqx5_s1"
    environment:
     - "EMQX_NAME=emqx5_s1"
     - "EMQX_HOST=127.0.0.1"
    ports:
     - 1883:1883
     - 8083:8083
     - 8084:8084
     - 8883:8883
     - 18083:18083
    volumes:
     - $PWD/emqx/etc:/opt/emqx/etc
     - $PWD/emqx/data:/opt/emqx/data
     - $PWD/emqx/log:/opt/emqx/log
    #restart: always
[root@centos7 mqtt_emqx5]#

EMQX默认开启的MQTT服务各个端口说明:

  • 1883:MQTT 协议端口
  • 8883:MQTT/SSL 端口
  • 8083:MQTT/WebSocket 端口
  • 8084:MQTT/WebSocket/SSL端口
  • 8080:HTTP API 端口
  • 18083:Dashboard 管理控制台端口

最终 mqtt_emqx5文件夹中的内容如下:

[root@centos7 mqtt_emqx5]# tree
.
├── docker-compose.yaml
└── emqx
    ├── data
    │   └── configs
    ├── etc
    │   ├── acl.conf
    │   ├── certs
    │   │   ├── cacert.pem
    │   │   ├── cert.pem
    │   │   ├── client-cert.pem
    │   │   ├── client-key.pem
    │   │   ├── key.pem
    │   │   └── README
    │   ├── emqx.conf
    │   └── vm.args
    └── log

6 directories, 10 files

3、启动MQTT

  • 使用 docker-compose up启动的容器都在前台,控制台将会同时打印所有容器的输出信息,可以很方便进行调试,通过 Ctrl-C停止命令时,该容器也会停止。
  • 使用 docker-compose up -d命令,则将会在后台启动并运行该容器,一般推荐使用。

一般进入到 docker-compose.yml的上下文目录中,执行命令:

  • 启动项目:docker-compose up -d
  • 停止项目:docker-compose down
[root@centos7 mqtt_emqx5]# docker-compose up
Starting emqx5_s1 ... done
Attaching to emqx5_s1
emqx5_s1    | WARNING: Default (insecure) Erlang cookie is in use.
emqx5_s1    | WARNING: Configure node.cookie in /opt/emqx/etc/emqx.conf or override from environment variable EMQX_NODE__COOKIE
emqx5_s1    | WARNING: NOTE: Use the same cookie for all nodes in the cluster.
emqx5_s1    | EMQX_RPC__PORT_DISCOVERY [rpc.port_discovery]: manual
emqx5_s1    | EMQX_NODE__NAME [node.name]: emqx5_s1@127.0.0.1
emqx5_s1    | Listener ssl:default on 0.0.0.0:8883 started.
emqx5_s1    | Listener tcp:default on 0.0.0.0:1883 started.
emqx5_s1    | Listener ws:default on 0.0.0.0:8083 started.
emqx5_s1    | Listener wss:default on 0.0.0.0:8084 started.
emqx5_s1    | Listener http:dashboard on :18083 started.
emqx5_s1    | EMQX 5.1.6 is running now!

通过浏览器就可以访问 ip:18083端口(默认的用户名是admin,密码为public),登录成功后会打开一个管理控制台网页。主界面如下:

通过Docker Compose安装MQTT,MQTT,Docker安装MQTT

三、MQTTX客户端

官方下载,傻瓜式安装:https://mqttx.app/zh

1、建立连接

新建MQTT服务端连接。

通过Docker Compose安装MQTT,MQTT,Docker安装MQTT

2、订阅主题

通过Docker Compose安装MQTT,MQTT,Docker安装MQTT

MQTT 协议根据主题来转发消息。主题被用来标识和区分不同的消息,它是 MQTT 消息路由的基础。

主题通过 / 来区分层级,类似于 URL 路径。MQTT 主题支持以下两种通配符:+ 和 #。

  • +:表示单层通配符,例如 a/+ 匹配 a/x 或 a/y。
  • #:表示多层通配符,例如 a/# 匹配 a/x、a/b/c/d。

注意:通配符主题只能用于订阅,不能用于发布。

关于 MQTT 主题的更多详情,请参阅文章通过案例理解 MQTT 主题与通配符:https://www.emqx.com/zh/blog/advanced-features-of-mqtt-topics

MQTTX客户端的更多使用,查看官方文档。

– 求知若饥,虚心若愚。文章来源地址https://www.toymoban.com/news/detail-693798.html

到了这里,关于通过Docker Compose安装MQTT的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何通过docker-compose部署单节点ES

    一、概述 Linux系统搭建单节点ES的方式有很多种,其中通过docker-compose进行安装最为方便。 二、准备 1、配置虚拟机 1.1、设置IP 将虚拟机IP设置为192.168.1.100; 1.2、设置内存 将虚拟机内存设置为4G,内存太小可能导致ES无法正常运行; 1.3、修改limits.conf limits.conf文件可以设置用

    2024年02月15日
    浏览(54)
  • 通过运行中的容器生成 Docker Compose 配置文件

    笔者之前有一次不小心删除了原始的 docker-compose.yml 文件,不过正在运行的 Docker 容器还在,找了许久,发现一个方法可以从这些容器中生成一个等效的 Docker Compose 配置文件。本文将介绍使用 autocompose 工具从正在运行的容器中反向生成 docker-compose.yml 文件。 首先,确保你已经

    2024年02月07日
    浏览(42)
  • 通过 docker-compose 快速部署 MySQL保姆级教程

    MySQL 是一种开源的关系型数据库管理系统( RDBMS ),以其快速、可靠和易于使用而受到广泛的欢迎。 MySQL 使用 SQL (结构化查询语言)进行查询、管理和操作数据。 MySQL 是一种跨平台的数据库,支持在各种操作系统(如 Windows、Linux、MacOS 等)上运行。 MySQL 中的重要概念包括

    2024年02月04日
    浏览(49)
  • 通过 docker-compose 搭建高可用 nginx + keepalived 集群

    两台虚拟机 CentOS Linux release 7.9.2009 (Core) Docker version 23.0.1 Docker-compose version 1.25.0-rc4 Keepalived 是一种高性能的服务器高可用或热备解决方案, Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用。 Keepalived 以 VRRP 协议为实现基础。 VRRP(

    2024年02月04日
    浏览(46)
  • 【大数据】通过 docker-compose 快速部署 ClickHouse 保姆级教程

    ClickHouse是一种 高性能、列式存储的分布式数据库管理系统 。它专注于快速数据分析和查询,并且在大规模数据集上表现出色。 在ClickHouse中,数据按列存储而不是按行存储。这种存储方式有许多优点,特别适合分析工作负载。下面是一些与列数据存储相关的关键概念和特点

    2024年02月07日
    浏览(51)
  • 使用 SQLStudio 进行数据库管理并通过 Docker Compose 进行部署

    在现代软件开发中,数据库管理是一个至关重要的环节。SQLStudio 是一个强大的工具,可以帮助开发人员轻松管理数据库,现在改名成SQLynx,我们用的是旧的镜像,本文还是用SQLStudio这个名称。同时,使用 Docker Compose 可以简化应用程序的部署过程,使整个开发流程更加高效和

    2024年02月11日
    浏览(38)
  • 【大数据】通过 docker-compose 快速部署 MinIO 保姆级教程

    MinIO 是一个开源的 对象存储服务器 ,它兼容 Amazon S3(Simple Storage Service)API 。它被设计用于构建分布式存储架构,提供高可用性、高性能和可扩展的对象存储解决方案。 下面是MinIO的一些主要特点和功能: 对象存储 :MinIO以对象为基本存储单元,可以存储和管理任意大小的

    2024年02月15日
    浏览(43)
  • 使用docker/docker-compose通过自定义的redis.conf文件启动redis 7.2.3,附上docker-compose.yml的redis配置

    目录 一.复制以及使用自定义的redis.conf文件 1.在官网拷贝对应版本的配置文件内容新建redis.conf文件进行粘贴。(推荐) 2.也可以去官网下载对应版本的redis的tar.gz包,解压后在根目录下找到redis.conf文件复制也可也可。 二.配置redis.conf文件(这里有个小坑) 1.注释掉bind 127.0.0.1

    2024年02月03日
    浏览(59)
  • 【中间件】通过 docker-compose 快速部署 Kafka 保姆级教程

    Kafka是由Apache基金会开发的分布式流处理平台,采用发布-订阅模式,支持高吞吐量、低延迟的数据传输。主要用于处理实时数据管道、数据存储和数据分析等大数据应用场景。Kafka采用高效的数据压缩算法,可以在集群中存储大量的数据,并通过分区机制来实现数据的高可靠

    2024年02月12日
    浏览(52)
  • 【docker 安装】 与【docker-compose 安装】

    不同的操作系统需要不同的docker安装文件:具体下载位置: Docker: https://download.docker.com/linux/static/stable/ docekr-compose:https://github.com/docker/compose/releases 1. 验证客户机器是否有docker 和docker-compose 1.1 docker安装 将压缩包上传到服务器并解压 拷贝docker文件夹至/usr/bin/下 拷贝docker.se

    2024年02月15日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包