在 PLCnext 上用 Docker 部署 Node-RED:分步实战指南
Docker 容器可在 PLCnext 设备上运行 Node-RED 服务。虽有其他方法稍快,但 OCI 容器优势明显:重复使用相同包时可构建标准镜像从 Docker Hub 下载,也可按需启停 Node-RED 服务。
本文将指导:安装 Docker 并验证、用 Dockerfile 构建预装包的自定义镜像、创建容器、设置开机自启、推送镜像到 Docker Hub。
安装 Balena Engine
严格说我们用 Balena Engine 运行 OCI 容器。命名细节见文末延伸阅读。安装步骤参考此处,命令如下。
确保以 root 登录,先设 root 密码:
sudo passwd root
用 su 切换到 root。克隆仓库并进入目录:
git clone https://github.com/PLCnext/Docker_GettingStarted.gitcd Docker_GettingStarted
赋予执行权限并运行安装脚本:
chmod +x setup.sh./setup.sh
解决容器访问互联网问题
安装时 nft 表可能配置错误,易修复。参考完整指南,简述如下:
执行 ifconfig,记下名为 balena 接口的 Inet 地址(如 172.17.0.1)。
编辑 /etc/nftables/balena.nft,对比第二行地址,不一致则修改为 ifconfig 获得的地址。
nano /etc/nftables/balena.nft
重启 balena-engine-daemon 重载 nft 表:
/etc/init.d/balena stop
/etc/init.d/balena start
第一个容器
下载无自定义包的 Node-RED 容器(无自定义包需求可止步于此,直接访问控制器 1880 端口):
balena-engine run -d -p 1880:1880 --name nodered --restart always nodered/node-red
Docker Hub 简介
前文用的 arm32v7/debian 镜像来自 Docker Hub。推荐 arm32v7 组织,提供适配 AXC F 2152 架构的镜像。nodered 组织也有兼容镜像。建议创建 Docker Hub 账号使用仓库(免费享近乎无限公开仓库和一个私有仓库),能省大量时间。文末将演示登录、重标签、推送镜像。
编写 Dockerfile
Dockerfile 是镜像配方。首行通常是 FROM 指定基础镜像。随后用 RUN 执行安装命令。完整参考见Dockerfile 参考。
例:安装 SNMP 包:RUN npm install node-red-node-snmp
实战构建 Dockerfile(确保在 AXC F 2152 的 SSH 会话中):
nano Dockerfile
FROM nodered/node-red:latest-minimal
RUN npm install node-red-node-snmp
构建新镜像:
balena-engine build . --tag myimage
收到标签成功提示即构建完成。balena-engine images 查看。
运行新镜像
交互模式运行(终端可见容器内输出):
balena-engine run -it -p 1880:1880 --name nodered myimage
Ctrl+P, Ctrl+Q 退出容器并保持运行。浏览器访问控制器 IP:1880,Node-RED 界面显示并已安装 SNMP 包!
开机自启与 docker run 参数详解
手动启动不切实际,用 --restart always 让 Docker 自动启动。常用参数:
-it:交互模式-d:后台分离模式-p:端口映射,格式宿主端口:容器端口--name:指定容器名,balena-engine ps可见--restart:重启策略,always即始终重启
最终命令:
balena-engine run -it -p 1880:1880 --name nodered --restart always myimage
推送镜像到 Docker Hub
跨控制器复用镜像建议上传 Docker Hub。假设已有账号和仓库:
balena-engine login登录- 镜像命名规范:
用户名/仓库名。若构建时未按此命名,需重标签:balena-engine tag myimage myaccount/myrep - 可加标签:
balena-engine tag myimage myaccount/myrep:alabel - 推送:
balena-engine push myaccount/myrep
延伸阅读与参考
工业技术
- 持久成功:从林肯与维护领导力汲取的坚持课题
- 优化Cat®机械:My.Cat.com终极指南
- TJBot 入门指南:构建、配置与语音控制您的 AI 机器人
- 树莓派 3 部署 RAK 831 LoRa 网关分步指南
- 基于 RAK831 模块与树莓派 3 构建 LoRa 网关:分步指南
- Arduino入门教程01:开始你的第一个项目
- 陶瓷3D打印实操指南:技术、材料与设计技巧
- 保险业 AI 落地实战指南:从认知到规模化应用
- Docker 中运行 Node-RED 专家技巧与最佳实践
- 在 PLCnext 上构建首个 Go 应用:新手入门指南
- 碱性染料认知全景:用途、安全红线与跨行业应用
- 工业染料与颜料全方位指南:应用与类型详解