亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

在 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.git
cd 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 自动启动。常用参数:

最终命令:

balena-engine run -it -p 1880:1880 --name nodered --restart always myimage

推送镜像到 Docker Hub

跨控制器复用镜像建议上传 Docker Hub。假设已有账号和仓库:

  1. balena-engine login 登录
  2. 镜像命名规范:用户名/仓库名。若构建时未按此命名,需重标签:balena-engine tag myimage myaccount/myrep
  3. 可加标签:balena-engine tag myimage myaccount/myrep:alabel
  4. 推送:balena-engine push myaccount/myrep

延伸阅读与参考

工业技术

  1. 持久成功:从林肯与维护领导力汲取的坚持课题
  2. 优化Cat®机械:My.Cat.com终极指南
  3. TJBot 入门指南:构建、配置与语音控制您的 AI 机器人
  4. 树莓派 3 部署 RAK 831 LoRa 网关分步指南
  5. 基于 RAK831 模块与树莓派 3 构建 LoRa 网关:分步指南
  6. Arduino入门教程01:开始你的第一个项目
  7. 陶瓷3D打印实操指南:技术、材料与设计技巧
  8. 保险业 AI 落地实战指南:从认知到规模化应用
  9. Docker 中运行 Node-RED 专家技巧与最佳实践
  10. 在 PLCnext 上构建首个 Go 应用:新手入门指南
  11. 碱性染料认知全景:用途、安全红线与跨行业应用
  12. 工业染料与颜料全方位指南:应用与类型详解