赞
踩
我这边启动的docker容器为:
这里我工作中常用的节点如下:
(1)数据库相关:
- mysql操作: node-red-contrib-stackhero-mysql@1.0.5
- redis操作: node-red-contrib-redis@1.3.9
- SqlServer操作:node-red-contrib-mssql@0.0.7
(2)数采相关:
- node-red-contrib-modbus@5.30.0
- node-red-contrib-opcua@0.2.323
- node-red-contrib-s7@3.1.0
- node-red-node-serialport@2.0.2
- @meowwolf/node-red-contrib-amqp@2.4.1
(3)其他:
- 定时器:node-red-contrib-cron-plus@2.1.0
- ftp文件远程:node-red-contrib-ftp-sftp@1.8.8
- 数组循环:node-red-contrib-loop-processing@0.5.1
- 时钟转换:node-red-contrib-moment@5.0.0
构建容器镜像有两种方法,通过docker commit或Dockerfile构建镜像,这里我们使用的是docker commit 构建镜像。步骤如下:
# 查看docker容器,展示的STATUS为容器状态
docker ps -a
# 如果容器状态为Exited关闭,则需要启动容器
docker start 容器名称
# 或者通过容器ID启动
docker start 容器ID
其他命令,如下:
# 关闭容器
docker stop 容器ID或容器名称
# 删除容器 - 删除前必须先关闭容器
docker rm 容器ID或容器名称
(1) 先找到该容器安装节点的安装包目录,选择一个节点名称全局搜索:find / -name 节点名称
(2)找到对应的目录后,将node_modules目录下的所有内容复制到容器内部的/usr/local/lib/node_modules/和/usr/src/node-red/node_modules/目录,命令如下:
docker cp 节点安装目录/. 容器ID:复制的目标目录
# 示例
docker cp /home/node_red/node_modules/. 3eb052b27233:/usr/local/lib/node_modules/
docker cp /home/node_red/node_modules/. 3eb052b27233:/usr/src/node-red/node_modules/
docker commit 容器id 自定义镜像名称:镜像版本
# 示例
docker commit 3eb052b27233 mynodered:1.2
查看镜像是否保存成功,执行命令:docker images
通过镜像创建容器,看镜像是否正确,执行命令:
docker run -u root:node-red -v /home/dataStore:/usr/src/node-red/data --privileged=true -p 端口号:1880 --name 容器名 -d 镜像名称:镜像版本
# 示例
docker run -u root:node-red -v /home/dataStore:/usr/src/node-red/data --privileged=true -p 1882:1880 --name nodered2 -d mynodered:1.2 --restart=always
成功运行后,进入页面看是否包含指定节点:
6. 打包镜像文件,执行命令:
docker save -o /存放目录/自定义镜像文件名称.tar 镜像名称:镜像版本
# 示例
docker save -o /home/mynodered1.2.tar mynodered:1.2
打包成功后,在对应的目录下能看到tar文件。
docker load -i <tar包名>.tar
# 示例
docker load -i mynodered1.2.tar
3. 查看镜像是否成功导入,执行命令:docker images
4. 通过镜像启动容器,执行命令:
docker run -u root:node-red -v /home/dataStore:/usr/src/node-red/data --privileged=true -p 端口号:1880 --name 容器名 -d 镜像名称:镜像版本
# 示例
docker run -u root:node-red -v /home/dataStore:/usr/src/node-red/data --privileged=true -p 1882:1880 --name nodered2 -d mynodered:1.2 --restart=always
成功运行后,进入页面看是否包含指定节点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。