使用Docker安装,这种方法最简单、干净,且方便后期维护和卸载。
目录
一.安装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 即可进行数据的发布与订阅。
