边缘计算部署实战:用Docker搭建轻量级边缘处理节点

为什么需要边缘计算部署

很多场景下,数据在云端处理延迟太高或带宽成本较大。
边缘计算部署就是把计算能力下沉到靠近数据源的位置(比如工厂车间、门店、IoT网关),在本地完成预处理、过滤或简单分析,再按需上传结果。
对于零基础用户,最实用的入口是用Docker在Linux服务器上跑一套轻量边缘处理环境,成本低、容易试错。

部署前需要准备什么

  • 一台Linux服务器(Ubuntu 20.04以上或CentOS 7+),可用云服务器或本地虚拟机,至少1核1G内存。
  • 服务器已安装Docker和Docker Compose。如果没装,执行以下命令快速安装Docker:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
# 退出当前终端重新登录后生效
  • 了解基本Linux命令(cd、ls、sudo等),会使用文件编辑器(vi或nano)。

一步步部署边缘计算环境

本次教程将部署两个核心组件:

  • Mosquitto:轻量MQTT消息代理,用于边缘设备上报数据。
  • eKuiper:SQL-based边缘流处理引擎,可实时订阅MQTT主题、做过滤/聚合,结果可转发回MQTT或本地数据库。

1. 创建Docker Compose配置文件

新建一个目录,比如edge-deploy,然后在里面创建docker-compose.yml

version: '3'

services:
  mosquitto:
    image: eclipse-mosquitto:2
    container_name: mqtt-broker
    ports:
      - "1883:1883"
      - "9001:9001"
    volumes:
      - ./mosquitto.conf:/mosquitto/config/mosquitto.conf
    restart: unless-stopped

  kuiper:
    image: lfedge/ekuiper:latest
    container_name: edge-stream
    ports:
      - "9081:9081"
    depends_on:
      - mosquitto
    environment:
      - KUIPER__DEFAULT_DATATOPIC=devices/+/data
    restart: unless-stopped

同一目录下创建mosquitto.conf,写入:

listener 1883
allow_anonymous true
listener 9001
protocol websockets
生产环境请务必设置认证,这里为了快速试验开放了匿名。

2. 启动边缘节点

进入edge-deploy目录,执行:

docker-compose up -d

等待几秒,用docker ps查看两个容器是否都处于Up状态。
如果kuiper容器重启,可以检查依赖顺序或拉取最新镜像。

3. 配置eKuiper流处理规则

访问eKuiper的REST API(默认端口9081)来创建规则。
也可以在容器内用命令行,这里演示API方式:

# 创建流,订阅MQTT主题 devics/+/data(+是通配符)
curl -X POST http://localhost:9081/streams -H 'content-type: application/json' -d '{
  "sql": "CREATE STREAM deviceStream () WITH (FORMAT=\"JSON\", DATASOURCE=\"devices/+/data\")"
}'

# 创建规则:过滤温度大于30的数据,并输出到 MQTT 主题 edge/alerts
curl -X POST http://localhost:9081/rules -H 'content-type: application/json' -d '{
  "id": "tempAlert",
  "sql": "SELECT * FROM deviceStream WHERE temperature > 30",
  "actions": [{
    "mqtt": {
      "server": "tcp://mosquitto:1883",
      "topic": "edge/alerts"
    }
  }]
}'

这样,当设备往devices/xxx/data发送温度超过30的JSON时,eKuiper会把结果推送到edge/alerts主题。

避坑要点

  • 端口冲突:如果本机已占用1883或9081,可以在docker-compose.yml中改成其他端口,注意映射时保持一致。
  • Mosquitto配置权限allow_anonymous true仅在测试环境使用,线上务必设置用户密码。
  • eKuiper无法连接MQTT:检查depends_on不能保证服务就绪,可通过健康检查或稍等几秒再发请求。
  • Docker版本docker-compose命令取决于安装方式,如果系统只有docker compose(新版),请用docker compose up -d(去掉中线)。

验证边缘节点是否正常工作

  1. 使用MQTT客户端(如mosquitto_sub)订阅edge/alerts
docker exec -it mqtt-broker mosquitto_sub -t edge/alerts -v
  1. 另开终端,模拟设备发送数据:
docker exec -it mqtt-broker mosquitto_pub -t devices/sensor1/data -m '{"temperature":35}'
  1. 观察订阅终端应收到edge/alerts消息,内容为经过eKuiper过滤的JSON。如果收不到,检查eKuiper日志:docker logs edge-stream
  2. 发送温度低于30的数据(如{"temperature":20}),则不会触发警报,验证过滤逻辑正确。

至此,一个基础的边缘计算部署环境搭建完成。
你在本地编辑规则、对接真实设备,就能跑通边缘数据预处理流程。
遇到异常时优先回看避坑和高频问题部分,也可查看eKuiper官方文档进一步探索。

分享到:
上一篇
零基础搭建混合云架构:从网络互通到业务联调
下一篇
AI算力出租新手实操指南:用闲置显卡轻松赚钱
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意