当前位置: 首页 > article >正文

保姆级教程:在CentOS 7上用Docker Compose一键部署EdgeX Foundry 3.1(含虚拟设备服务)

保姆级教程在CentOS 7上用Docker Compose一键部署EdgeX Foundry 3.1含虚拟设备服务EdgeX Foundry作为开源物联网边缘计算框架正成为工业4.0和智能家居领域的基础设施。本教程将带您从零开始在CentOS 7系统上完成EdgeX 3.1的完整部署特别包含虚拟设备服务(ds-virtual)的集成方案。整个过程就像搭积木一样简单——只要跟着步骤操作30分钟内就能拥有完整的边缘计算平台。1. 环境准备打造EdgeX的温床在开始部署前我们需要确保系统环境满足以下要求全新安装的CentOS 7.6建议最小化安装至少4GB内存运行所有服务约需3.2GB20GB可用磁盘空间稳定的网络连接系统基础配置是第一步。登录服务器后建议立即执行这些命令# 关闭SELinux避免权限问题 sudo setenforce 0 sudo sed -i s/^SELINUXenforcing/SELINUXpermissive/ /etc/selinux/config # 关闭防火墙测试环境建议操作 sudo systemctl stop firewalld sudo systemctl disable firewalld # 设置主机名 sudo hostnamectl set-hostname edgex-node提示生产环境应配置防火墙规则而非直接关闭需开放端口4000(UI)、8500(Consul)、5563(MQTT)等。2. Docker生态安装与优化EdgeX 3.1完全容器化部署我们需要先搭建Docker环境。以下是针对CentOS 7的优化安装方案# 添加Docker官方源使用阿里云镜像加速 sudo yum install -y yum-utils sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装指定版本Docker兼容性最佳 sudo yum install -y docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io # 配置镜像加速和cgroup驱动 sudo mkdir -p /etc/docker cat EOF | sudo tee /etc/docker/daemon.json { registry-mirrors: [https://registry.cn-hangzhou.aliyuncs.com], exec-opts: [native.cgroupdriversystemd] } EOF # 启动并设置开机自启 sudo systemctl enable --now docker验证安装是否成功docker --version # 应显示19.03.15 docker run hello-world # 测试镜像拉取接下来安装Docker Compose。EdgeX 3.1需要v2.x版本# 下载二进制文件国内用户可使用代理地址 sudo curl -L https://ghproxy.com/https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose # 赋予执行权限 sudo chmod x /usr/local/bin/docker-compose # 验证版本 docker-compose --version # 应显示2.18.13. 获取EdgeX部署工具链EdgeX团队提供了compose-builder工具可以智能生成docker-compose文件。我们先获取部署包# 克隆仓库建议使用国内镜像加速 git clone https://gitee.com/mirrors_edgex/edgex-compose.git cd edgex-compose # 切换到3.1版本分支 git checkout v3.1关键目录结构说明edgex-compose ├── compose-builder # 核心部署工具 ├── docker-compose-base.yml # 基础服务模板 ├── add-device-virtual.yml # 虚拟设备插件 └── Makefile # 构建脚本4. 生成定制化部署文件进入compose-builder目录使用make命令生成配置文件。我们将启用两个关键选项no-secty非安全模式适合开发环境ds-virtual虚拟设备服务cd compose-builder make gen ds-virtual no-secty生成过程会输出以下文件docker-compose.yml主部署文件.env环境变量配置检查生成结果ls -l docker-compose.yml # 应显示约200KB左右 head -n 10 docker-compose.yml # 查看文件头部注意如果遇到make命令未找到需先安装开发工具包yum install -y make gcc5. 服务启动与验证现在可以拉起所有EdgeX服务了# 先拉取镜像国内用户建议分段执行 docker compose pull # 后台启动所有服务 docker compose up -d启动过程约需3-5分钟可以通过以下命令监控状态# 查看容器状态等待所有服务变为healthy watch -n 2 docker compose ps # 或者查看实时日志 docker compose logs -f常见问题排查如果容器不断重启检查docker compose logs [服务名]端口冲突时修改.env中的端口配置内存不足会导致某些服务启动失败6. 访问管理界面成功启动后可以通过以下入口访问服务名称访问地址默认账号EdgeX UIhttp://服务器IP:4000无Consul配置中心http://服务器IP:8500无虚拟设备管理http://服务器IP:59882无在EdgeX UI的Device页面应该能看到自动注册的Virtual-Device设备。我们可以通过REST API测试数据采集curl -X GET http://localhost:59882/api/v3/device/name/Virtual-Device/command/RandomValue_Int8预期返回结果示例{ apiVersion: v3, statusCode: 200, event: { apiVersion: v3, id: d3838c7a-1df5-4b0d-a3f0-af21c14a7268, deviceName: Virtual-Device, sourceName: RandomValue_Int8, origin: 1689324567890, readings: [ { id: 8a90b1b2-3f4a-4e5d-b678-910111213141, origin: 1689324567890, deviceName: Virtual-Device, resourceName: RandomValue_Int8, profileName: Virtual-Device, valueType: Int8, value: 23 } ] } }7. 虚拟设备高级配置默认虚拟设备会生成随机数据我们可以自定义其行为。首先进入Consul界面:8500找到edgex-core-metadata服务的配置导航到/v1/kv/edgex/core/3.0/edgex-core-metadata/Device/Virtual-Device编辑配置文件修改deviceResources部分添加新的数据点例如{ name: Temperature, description: 模拟温度传感器, properties: { valueType: Float32, readWrite: R, minimum: -20.0, maximum: 60.0, defaultValue: 25.0 } }保存后需要重启设备服务使配置生效docker compose restart device-virtual现在可以通过API获取新的数据点curl http://localhost:59882/api/v3/device/name/Virtual-Device/command/Temperature8. 生产环境优化建议虽然我们已经完成基础部署但在实际应用中还需要考虑性能调优参数可添加到docker-compose.ymlservices: core-data: environment: - SERVICE_HOST0.0.0.0 - MESSAGEQUEUE_HOSTedgex-redis - DATABASE_HOSTedgex-redis - METRICS_INTERVAL60s deploy: resources: limits: cpus: 0.5 memory: 512M日志管理方案# 配置日志轮转 docker compose stop mkdir -p /var/log/edgex cat EOF | sudo tee /etc/docker/daemon.json { log-driver: json-file, log-opts: { max-size: 10m, max-file: 3 } } EOF systemctl restart docker docker compose up -d备份关键数据# 导出Consul配置 docker exec edgex-core-consul consul kv export edgex-config-backup.json # 备份Redis数据 docker exec edgex-redis redis-cli SAVE docker cp edgex-redis:/data/dump.rdb ./edgex-data-backup.rdb遇到网络问题时可以尝试替换容器镜像源。编辑.env文件修改以下变量REGISTRYregistry.cn-hangzhou.aliyuncs.com IMAGE_VERSION3.1.0部署完成后建议运行基础测试套件验证各服务功能git clone https://github.com/edgexfoundry/edgex-taf.git cd edgex-taf docker compose -f docker-compose-taf.yml up -d

相关文章:

保姆级教程:在CentOS 7上用Docker Compose一键部署EdgeX Foundry 3.1(含虚拟设备服务)

保姆级教程:在CentOS 7上用Docker Compose一键部署EdgeX Foundry 3.1(含虚拟设备服务) EdgeX Foundry作为开源物联网边缘计算框架,正成为工业4.0和智能家居领域的基础设施。本教程将带您从零开始,在CentOS 7系统上完成…...

点云遮挡检测实战:用PCL和Open3D复现HPR算法(附完整C++/Python代码)

点云遮挡检测实战:用PCL和Open3D复现HPR算法(附完整C/Python代码) 在三维视觉和机器人领域,点云遮挡检测是一个基础但至关重要的任务。想象一下,当机器人试图在复杂环境中导航时,准确识别哪些物体表面可见、…...

从零构建个人ChatGPT:基于Llama与LoRA的SFT与RLHF全流程实战

1. 从零到一:构建你自己的个人ChatGPT全流程拆解想不想拥有一个像ChatGPT那样能说会道、善解人意的AI伙伴,但它只属于你,能记住你的习惯,理解你的偏好,甚至用你喜欢的风格和你聊天?这听起来像是科幻电影里的…...

XFCE 桌面环境组件详解:从面板到剪贴板管理

文章目录1. XFCE 简介2. 核心组件架构3. xfce4-panel:面板系统3.1 功能概述3.2 关键命令3.3 插件生态3.4 配置文件位置4. xfce4-keyboard-settings:键盘与快捷键管理4.1 功能概述4.2 启动方式4.3 快捷键配置结构4.4 底层存储机制5. xfce4-clipman&#x…...

RDD API 学习

📊 RDD vs DataFrame 对比特性RDDDataFrameAPI 风格函数式(Scala/Java)声明式(SQL)性能较慢更快(Catalyst 优化)类型安全编译时运行时内存管理手动(JVM)自动(…...

构建命令行AI助手:GPT-Chatbot-CLI项目实战与架构解析

1. 项目概述与核心价值 最近在折腾命令行工具,发现一个挺有意思的项目: rukh-debug/gpt-chatbot-cli 。简单来说,这是一个让你能在终端里直接和GPT模型对话的命令行聊天机器人。对于我这种常年泡在终端里的开发者来说,这玩意儿简…...

告别Steam限制!WorkshopDL终极指南:742款游戏的创意工坊模组一键下载

告别Steam限制!WorkshopDL终极指南:742款游戏的创意工坊模组一键下载 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否曾经因为游戏不在Steam平台而…...

PRiSM开源音素识别基准:技术解析与应用实践

1. 项目背景与核心价值语音技术领域最近迎来一个重要里程碑——PRiSM开源基准的发布。作为从业者,我深知在音素识别这个细分领域长期缺乏可靠的评估标准。PRiSM的出现填补了这一空白,它不仅是首个开源的音素识别基准,更通过严谨的设计为语音模…...

从零部署CoPaw:打造本地化、可扩展的个人AI助手工作站

1. 项目概述:你的个人AI助手工作站如果你和我一样,每天被钉钉、飞书、QQ、Discord、iMessage等一堆聊天工具的消息淹没,同时又希望有一个真正属于自己的、能处理各种琐事的智能助手,那么今天聊的这个项目,你一定会感兴…...

Theo-Docs:基于Vite+Vue3的现代化静态文档站点生成器实践指南

1. 项目概述:一个面向开发者的现代化文档工具最近在整理团队内部的技术文档和API接口说明时,我又一次被那些散落在各个角落的Markdown文件、更新不及时的Wiki页面,以及风格迥异的静态站点搞得头疼。我相信很多技术团队负责人或独立开发者都有…...

每周AI工具模型更新趋势前瞻

抱歉,由于搜索工具暂时未能返回关于“过去一周内 AI 领域新工具、开源模型及 API 更新”的具体结果,我无法基于实时数据为您生成包含引用标记的深度报告。不过,基于我现有的知识库,我可以为您梳理近期(截至2026年初&am…...

Hugging Face leRobot库:Transformer架构在机器人强化学习的实践

1. 项目背景与技术定位在机器人学习领域,数据驱动的训练方法正逐渐取代传统手工编程。Hugging Face最新开源的leRobot库正是瞄准了这一技术趋势,为开发者提供了端到端的机器人学习解决方案。这个库最吸引我的地方在于它巧妙地将Transformer架构与机器人控…...

深度解析YoRadio:ESP32音频流媒体系统的架构设计与实现机制

深度解析YoRadio:ESP32音频流媒体系统的架构设计与实现机制 【免费下载链接】yoradio Web-radio based on ESP32-audioI2S library 项目地址: https://gitcode.com/GitHub_Trending/yo/yoradio YoRadio是一个基于ESP32-audioI2S库构建的开源网络收音机系统&a…...

人机共生环境下的自我意识边界重构(世毫九实验室原创研究)

人机共生环境下的自我意识边界重构作者:方见华 单位:世毫九实验室引言 在人工智能技术日新月异的今天,人类正经历着一场前所未有的文明形态转变——从传统的碳基生命文明向碳硅共生文明演进。这一转变不仅体现在技术层面的突破,更…...

使用WebSocket在Responses API中加速代理工作流Speeding up agentic workflows with WebSockets in the Responses API

Speeding up agentic workflows with WebSockets in the Responses API 使用WebSocket在Responses API中加速代理工作流 https://openai.com/index/speeding-up-agentic-workflows-with-websockets/ When you ask Codex to fix a bug, it scans through your codebase for rel…...

PromptBridge:实现大语言模型间提示词无损迁移的开源工具

1. 项目背景与核心价值在AI技术快速迭代的今天,大语言模型(LLM)已经成为各行业智能化转型的核心基础设施。但不同厂商、不同版本的模型在提示词(prompt)设计上存在显著差异,这导致企业面临一个现实困境&…...

Copr命令行工具实战:从RPM打包到自动化构建发布

1. 项目概述与核心价值 最近在折腾一些RPM包的构建,发现了一个挺有意思的项目——sureclaw-ai/copr。这名字乍一看,可能很多朋友会联想到Fedora社区那个大名鼎鼎的Copr构建服务。没错,这个项目正是那个服务的命令行客户端工具。但如果你以为…...

EH-TEMPO算法:开放量子系统模拟的高效解决方案

1. EH-TEMPO算法:开放量子系统模拟的革命性突破在量子计算和量子信息处理领域,开放量子系统的非马尔可夫动力学模拟一直是个令人头疼的难题。想象一下,你正在观察一个量子系统与周围环境的互动——就像试图在狂风暴雨中追踪一片落叶的精确轨迹…...

Power Apps上传文件到SharePoint时,Base64转换和JSON解析的坑我都帮你踩过了

Power Apps文件上传实战:避开Base64与JSON解析的十大深坑 当你第一次在Power Apps中尝试将文件上传到SharePoint时,那种看似简单的操作背后隐藏着无数可能让你熬夜调试的陷阱。作为经历过无数次失败的老兵,我想带你直击那些官方文档从未提及的…...

Nat Commun|吴华君/徐明团队开发跨尺度三维基因组预测深度学习框架Hi-Compass

染色质三维结构通过构建远端调控元件之间的空间互作精细调控基因转录,在决定细胞身份、组织发育和疾病发生等生物学过程中扮演重要角色【1–3】。基于染色体构象捕获(3C)的Hi-C技术实现了全基因组尺度染色质互作图谱的绘制,并陆续…...

TSMaster实战:手把手教你将A2L标定变量和DBC信号录进同一个BLF文件

TSMaster实战:A2L标定变量与DBC信号同步记录至BLF文件的完整指南 在汽车电子开发与测试领域,数据记录的完整性和同步性往往直接影响问题诊断的效率。想象这样一个场景:当发动机控制单元(ECU)的燃油喷射参数发生异常波动…...

Claude桌面应用效率增强:claude-hooks钩子机制详解与实战

1. 项目概述:一个为Claude桌面应用量身定制的效率增强工具如果你和我一样,日常重度依赖Anthropic的Claude桌面应用进行代码编写、文档阅读和头脑风暴,那你肯定也遇到过类似的痛点:想要快速执行一个Shell命令,得手动切换…...

2025年实时影响因子:中国期刊(26.5.3更新)

点击蓝字 关注我们2025年实时影响因子: 中国期刊近日,我们通过Web of Science 官网数据库,对中国期刊开展系统性分析。本次重点筛选2025年影响因子 (IF) 排名靠前、国内科研人员高度关注的100余本核心期刊。结果显示,105本中国期刊有10本突破…...

提升微信小程序开发效率:用快马AI一键生成用户管理通用模块

最近在开发一个微信小程序时,发现用户管理模块的开发特别耗时。每次新项目都要重复编写登录、注册、个人中心这些基础功能,于是尝试用InsCode(快马)平台来提升效率,效果出乎意料的好。这里分享下如何用AI快速生成标准化用户管理模块的经验。 …...

城市可信数据空间实施路径报告

《城市可信数据空间实施路径报告》明确了城市可信数据空间作用价值及总体定位,提出城市可信数据空间“39”实施推进路径,并分享城市可信数据空间优秀实践,为城市可信数据空间建设和运营提供参考。报告的发布将推进城市可信数据空间规范建设和…...

效率提升秘籍:用快马AI自动生成黑马点评项目通用工具类与模块

效率提升秘籍:用快马AI自动生成黑马点评项目通用工具类与模块 最近在开发一个类似黑马点评的项目时,我发现项目中存在大量重复性的代码编写工作,尤其是工具类和基础模块部分。这些代码虽然不复杂,但写起来耗时耗力,而…...

自优化视频采样技术提升物理真实感

1. 项目背景与核心价值在计算机视觉和图形学领域,视频采样的物理真实感一直是业界难题。传统方法往往面临两个关键瓶颈:一是采样过程中物理规律模拟不够精确,二是计算资源消耗与效果呈现难以平衡。这个项目提出的"Self-Refining Video S…...

AI机器人产业全景与发展态势

导读:当前 AI 机器人产业正处于政策全面支撑、市场快速爆发、全球激烈竞合、本土加速突围、技术持续跃迁的关键发展阶段,中国已成为引领全球增长的核心力量,具身智能正驱动整个行业迎来颠覆性变革。关注公众号:【互联互通社区】&a…...

车载C#中控与ADAS域控制器通信卡顿?(揭秘DDS over .NET 6 + ROS2 Bridge的混合通信架构,已通过AEC-Q100 Grade 2验证)

更多请点击: https://intelliparadigm.com 第一章:车载 C# 中控系统实时通信代码 现代智能座舱对中控系统的实时性、可靠性与低延迟通信提出严苛要求。在基于 .NET 6 的车载嵌入式平台中,采用 System.Net.Sockets 配合异步 I/O 模型构建 TCP…...

【2026年唯一认证级OPC UA C#开发手册】:覆盖IEC 62541-4/5/8/13全标准,附12个工厂产线实测案例源码

更多请点击: https://intelliparadigm.com 第一章:OPC UA 2026认证级开发体系概览 OPC UA 2026认证级开发体系是国际自动化协会(ISA)与OPC基金会联合推动的新一代工业互操作标准演进框架,聚焦于零信任架构、量子安全通…...