docker安装部署MQTT

前言

由于业务的需求,需要使用到MQTT,由于之前只是使用,并未自己搭建过,所以就写下来记录一下。

环境配置

1、获取镜像

# 拉取的是最新版本
docker pull emqx/emqx:latest
# 当然可以指定版本
docker pull emqx/emqx:latest:v5.0

2、创建临时容器

docker run -d --name emqx --privileged=true -p 1883:1883 -p 8883:8883 -p 8083:8083 -p 8084:8084 -p 8081:8081 -p 18083:18083  emqx/emqx:latest

参数 --privileged=true 表示赋予容器特权,用于需要与主机系统交互的操作。
参数 -p 指定了端口映射,将容器内的端口映射到主机上,以便可以从外部访问 EMQ X 服务。
参数 emqx/emqx:latest 表示使用 emqx/emqx 仓库中最新版本的镜像运行容器

3、创建挂载目录

只要是为了容器内外共享数据或持久化存储容器内的数据。通过挂载文件目录,可以将主机系统上的文件或目录与容器内部的文件系统进行关联,使得容器内的操作可以直接影响主机系统上的文件,也可以使主机系统上的文件在容器内保持持久化,即使容器被删除或重建,数据仍然保留。这样做可以方便地进行数据备份、共享和管理

mkdir -p /home/jaxf/emqx/etc /home/jaxf/emqx/lib /home/jaxf/emqx/data /home/jaxf/emqx/log

这个指令需要注意,如果你是在根目录进行输入,一定要包含全部的路径名称。
如果已经在你想要指定创建的文件夹里面,只需要指定要创建的文件夹名称即可。

4、从临时容器内复制配置文件到挂载目录下

docker cp emqx:/opt/emqx/etc /home/jaxf/emqx

5、强制删除临时容器

docker rm -f emqx

6、运行并挂载文件代码

docker run -d \
--restart=always \
--name emqx \
-p 1883:1883 \
-p 8883:8883 \
-p 8083:8083 \
-p 8084:8084 \
-p 8081:8081 \
-p 18083:18083 \
-v /home/app/emqx/etc:/opt/emqx/etc \
emqx/emqx:latest


1883: MQTT 协议的默认端口,用于 MQTT 客户端与 EMQ X 服务进行通信。
8883: MQTT 协议的安全端口,使用 SSL/TLS 加密通信。
8083: WebSocket over MQTT 协议的端口,用于支持通过 WebSocket 进行 MQTT 通信。
8084: WebSocket over MQTT 协议的安全端口,使用 SSL/TLS 加密通信。
8081: HTTP API 的端口,用于管理和监控 EMQ X 服务。
18083: WebSocket over HTTP 协议的管理界面端口,用于通过 Web 界面管理和监控 EMQ X 服务
(下面使用的时候需要注意端口号)

7、登录EMQX内置的管理控制台
在这里插入图片描述
账户:admin
密码:public
8、开启客户端的验证
在这里插入图片描述
如果你有自己的数据源的话,可以进行选择,没有的话,仅是测试是否可以使用,直接一直下一步
在这里插入图片描述
之后配置下用户名称与密码
添加用户账户与密码
此外,要是你使用mqtt进行传递图文的话,需要设置报文的大小,好像是最大256M,具体如下:
报文设置之后再问题分析这一状态栏上,可以进行测试连接
测试
结果
进行简单的测试下,可以发现自己部署的服务没有问题,正常运行。

8、客户端进行连接测试

客户端连接的端口号与网页端的有区别:
客户端:1883,网页端:8083  一定注意区分

客户端配置
9、消息的接收与主题的订阅
主题订阅
至此,大致完成,接下来就是你自己的业务啦!!!

### 如何在爱快路由器上使用Docker部署MQTT服务器 #### 准备工作 为了成功地在爱快路由器上通过Docker部署MQTT服务器,需先确认爱快路由器具备足够的硬件资源来运行Docker容器,并已安装好Linux操作系统以及完成了必要的软件包更新。对于Docker安装,在大多数情况下可以通过官方文档获取最新的指导说明[^1]。 #### 安装Docker 确保爱快路由器能够访问互联网以便下载所需的依赖项和Docker镜像。按照标准流程执行Docker安装命令: ```bash curl -fsSL https://get.docker.com | sh ``` 此脚本会自动检测系统的发行版并完成Docker及其相关工具链的安装[^2]。 #### 获取MQTT Docker镜像 一旦Docker环境准备好之后,下一步就是从Docker Hub拉取MQTT Broker(如EMQX)的官方镜像。这一步骤可通过简单的`docker pull`命令实现: ```bash docker pull emqx/emqx:latest ``` 上述命令将会把最新版本的EMQX MQTT broker作为Docker镜像下载下来[^3]。 #### 启动MQTT服务 启动MQTT服务时可以考虑持久化存储配置文件和其他重要数据,这样即使重启设备也能保留之前的设置。下面是一个典型的例子展示如何创建一个带有端口映射和服务名定义的MQTT实例: ```bash docker run -d \ --name mqtt-broker \ -p 1883:1883 \ -p 8883:8883 \ -p 18083:18083 \ -v /path/to/config/on/router:/opt/emqx/etc \ emqx/emqx:latest ``` 这里假设已经有一个路径指向本地磁盘上的某个目录用于保存配置文件;如果尚未有,则需要提前创建该位置。 #### 测试MQTT连接 最后,验证MQTT服务是否正常运作非常重要。可借助专门设计用来测试MQTT协议通信的应用程序来进行这项检查,比如Mosquitto客户端或其他任何兼容的库或应用程序。尝试向主题发布消息再订阅相同的主题看能否接收到回显的消息即可证明一切就绪。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值