在树莓派中部署emqx

使用Docker安装,这种方法最简单、干净,且方便后期维护和卸载。

目录

一.安装Docker

二.拉取并启动EMQX

三、有报错的情况(有报错看)

四、启动EMQX容器

五、验证与访问EMQX控制台


一.安装Docker

如果你的树莓派还没有安装 Docker,可以在终端执行官方的一键安装脚本:

bash 复制代码
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

安装完成后,可以输入 docker -v 确认是否安装成功。

二.拉取并启动EMQX

直接在终端中依次运行以下两条命令:

拉取最新的 EMQX 镜像(Docker 会自动识别并下载适配树莓派 ARM 架构的版本)

bash 复制代码
sudo docker pull emqx/emqx:latest

三、有报错的情况(有报错看)

插入报错警告:这里如果你输入后,如下图一样出现了报错(如果没有报错可跳到后面继续进行)

我输了两次,还是一样报错,怎么办?

别担心,这个问题,很常见。

你的树莓派在尝试连接 Docker 官方服务器下载镜像时,网络连接超时了。

这通常是因为 Docker 的官方镜像仓库位于海外,国内直接访问经常被墙或者限速,非常困难。

接下来配置国内镜像加速器

这是解决 Docker 拉取镜像超时问题最直接、最推荐的方法。你可以使用阿里云、网易、中科大等提供的公共加速服务。

1.编辑 Docker 的配置文件

在树莓派终端中,使用 sudo 权限和 nano 编辑器打开或创建 Docker 的守护进程配置文件 daemon.json

bash 复制代码
sudo nano /etc/docker/daemon.json

2.添加镜像源地址

在打开的文件中,粘贴以下内容。这里使用了网易的镜像源作为示例,它稳定且无需配置:

bash 复制代码
{
  "registry-mirrors": ["https://hub-mirror.c.163.com"]
}

3.保存并重启 Docker 服务

按下 Ctrl + X,然后按 Y,最后按 Enter 键来保存文件并退出编辑器。

为了让配置生效,你需要重启 Docker 服务:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

4.再次尝试拉取镜像

完成以上配置后,你的树莓派就会通过国内的镜像源来拉取镜像,速度会快很多。现在,你可以再次运行之前的命令:

bash 复制代码
sudo docker pull emqx/emqx:latest

上面是网络延迟导致的,一般配置加速器就行了。

等等、等等,怎么我又报错了!

如图:

从图中提供的最新报错信息 lookup hub-mirror.c.163.com on 10.***.***.**:53: no such host 来看,问题已经发生了转变。

现在不再是连接超时,而是 DNS 解析失败 。简单来说,你的树莓派无法将 hub-mirror.c.163.com 这个网址转换成一个有效的 IP 地址。这通常意味着你当前网络环境中的 DNS 服务器出了问题,或者它无法访问外部的域名。

此外,网易的 hub-mirror.c.163.com 镜像源近年来稳定性有所下降,有时会不稳定甚至停用。

因此,我们采用一个双重解决方案:

步骤一:更换 Docker 镜像源

我们将把镜像源更换为目前更稳定、速度更快的公共源。

打开 Docker 的配置文件:

bash 复制代码
sudo nano /etc/docker/daemon.json

将文件内容替换为以下其中一个推荐的镜像源地址:

bash 复制代码
{
  "registry-mirrors": ["https://docker.m.daocloud.io"]
}

或者,你也可以尝试这个:

bash 复制代码
{
  "registry-mirrors": ["https://docker.1ms.run"]
}

按下Ctrl + X , 然后按Y, 最后回车 保存并退出。

重启 Docker 服务以使新配置生效:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

步骤二:配置可靠的公共 DNS

这个步骤将确保你的树莓派能够正确解析任何域名。

1.备份原有的 DNS 配置文件(是个好习惯):

bash 复制代码
sudo cp /etc/resolv.conf /etc/resolv.conf.bak

2.编辑 resolv.conf 文件,使用阿里云和谷歌的公共 DNS 服务器:

bash 复制代码
sudo nano /etc/resolv.conf

3.将文件中的所有内容全部删除,然后粘贴以下两行:

bash 复制代码
nameserver 223.5.5.5
nameserver 8.8.8.8

按下Ctrl + X , 然后按Y, 最后回车 保存并退出。

再次尝试!

完成以上两个步骤后,你的网络和 Docker 配置都已经更新。现在再次尝试拉取 EMQX 镜像,应该就能成功了:

bash 复制代码
sudo docker pull emqx/emqx:latest

哦耶!成功了!(〃 ̄︶ ̄)人( ̄︶ ̄〃)

四、启动EMQX容器

bash 复制代码
sudo docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:latest

五、验证与访问EMQX控制台

通过浏览器访问 EMQX 的 Dashboard(数据管理后台):

获取树莓派 IP:在树莓派终端输入 hostname -I 查看。

访问后台:在电脑或手机的浏览器中输入 http://<你的树莓派IP>:18083。

(如:http://196.121,190,45:18083)

默认账号密码: 默认用户名:admin 默认密码:public

(首次登录后系统会强制要求你修改默认密码)。

进入控制台后,如果你编写了代码,订阅主题,发送数据,你就可以看到连接的设备、消息收发速率等实时监控数据。在编写代码(如 Python 的 paho-mqtt)连接时,Broker 地址填写你的树莓派 IP,端口默认为 1883 即可进行数据的发布与订阅。

相关推荐
vivo互联网技术25 分钟前
协同文档下的 Agent 协作闭环:可回滚、可对比的透明化编辑实现
人工智能·笔记·agent
khs1857183752731 分钟前
AI液冷技术应用:超纯水保障算力芯片运行
人工智能·经验分享
Wang's Blog32 分钟前
PostgreSQL笔记27: 双缓存架构下的内存管理与性能观测实践
笔记·缓存·postgresql
Canmag 兴隆磁性36 分钟前
充磁的时候,磁铁里面到底发生了什么
学习·永磁材料·充磁·退磁
Wang's Blog36 分钟前
PostgreSQL笔记22: WAL日志与崩溃恢复原理
数据库·笔记·postgresql
海兰1 小时前
【Kafka学习4】六大核心 API
学习·kafka·linq
知识分享小能手1 小时前
概理论与数理统计学习教程,从入门到精通,随机变量的数字特征 — 知识点总结与详细推导(7)
学习·机器学习·概率论
却道天凉_好个秋1 小时前
计算机网络:CDN
学习·音视频·cdn
圆奋奋1 小时前
FreeRTOS学习(十)- 最核心的内容:优先级抢占式调度 + 上下文切换
学习·freertos
电化学仪器白超1 小时前
MV-CS200-10UC相机参数配置
python·单片机·嵌入式硬件·数码相机·自动化·ltspice