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

docker部署多个node-red操作过程


docker部署多个node-red操作过程

  • 一、docker安装教程
  • 二、docker安装node-red
    • 2.1 在线安装node-red镜像
      • 2.1.1 拉取镜像
      • 2.1.2 创建目录并分配权限
    • 2.2 离线安装node-red镜像
  • 三、 docker操作node-red
    • 3.1 部署node-red
    • 3.2 查看\关闭\删除容器
  • 四、Docker删除Redis镜像
  • 五、离线安装node-red节点

1
回到目录

一、docker安装教程

【docker在线使用安装教程】
【linux系统离线安装docker(分步法&一键法)】

回到目录

二、docker安装node-red

一、node-red官网:https://nodered.org/
二、node-red官网上Docker安装node-red的教程:https://nodered.org/docs/getting-started/docker

2.1 在线安装node-red镜像

2.1.1 拉取镜像

  1. 查看可用的redis版本,执行命令:docker search node-red
    1
  2. 拉取node-red镜像:从Docker Hub上获取node-red官方镜像,执行命令:docker pull <镜像名称>:<版本号>
# 示例
docker pull nodered/node-red

1

  1. 查看本地node-red镜像,执行命令: docker images
      执行后,将会列出本机上所有的Docker镜像列表,包括镜像ID、镜像名称、镜像标签、镜像大小等信息。如下图所示:
    1

从上图可以看出,每个镜像都有一个唯一的ID、一个名称和一些标签(也称为版本)。其中,REPOSITORY字段表示镜像的名称,TAG字段表示镜像的标签,IMAGE ID字段则是该镜像的唯一标识符。

*查看Docker镜像存储位置:
  在Docker中,每个镜像都是由多个层(Layer)组成的。因此,当用户下载或者构建一个Docker镜像时,实际上是将镜像的所有层下载到本地存储中。而在Linux系统中,Docker镜像实际上是存储在/var/lib/docker目录下的。在终端输入下面命令:sudo ls -l /var/lib/docker/
1
执行后,终端将会显示出/var/lib/docker/目录下所有的文件和文件夹列表。其中,/var/lib/docker/image文件夹是Docker储存镜像的主要位置。在/var/lib/docker/image/overlay2/imagedb/content/sha256目录下,存储了所有已下载的Docker镜像(以镜像ID命名),即所有层的存储位置。在每个镜像ID目录下,都有一个名为“real”或者“diff”文件,代表该层的存储位置。
1
回到目录

2.1.2 创建目录并分配权限

  1. 创建目录:mkidr -p /home/node_red/data
  2. 分配权限:chmod 777 -R /home/node_red
    1
    回到目录

2.2 离线安装node-red镜像

  在实际是应用环境中,服务器可能会处在只能访问内网不能访问外网的环境中,因此不能直接通过访问网站下载镜像。此时,需要手动下载,有两种方式:

  • 方法1:去docker官网下载镜像的安装包’
  • 方法2:从可以访问外网的服务器安装镜像后,将镜像拷贝到本服务器使用 - 建议使用该种方式

操作步骤如下:

  • 一、在有外网的服务器上操作:
  1. 在有外网环境的服务器安装docker环境后,执行命令拉取镜像:docker pull nodered/node-red
  2. 查看拉取的镜像名称:docker images
    1
  3. 新建文件夹存储镜像:mkdir data
  4. 将镜像保存到磁盘备用,执行命令:docker save -o /data/node-red.tar nodered/node-red
  • 二、在无外网但需要通过docker安装node-red的服务器上操作:
  1. 通过工具将data目录下的node-red.tar镜像文件移动到需要离线安装nodered的服务器对应目录上(目录可自定义,建议在docker安装包下新建目录/data)
    5
  2. 在本服务器加载镜像,执行命令:docker load -i node-red.tar
    6
  3. 查看镜像是否加载成功,执行命令:docker images
    1
    回到目录

三、 docker操作node-red

3.1 部署node-red

部署命令: sudo docker run -u root:node-red -v /home/node_red:/data --privileged=true -p 1881:1880 --name mynodered1 -d nodered/node-red --restart=always

  • -p:端口映射 1881
  • -u:用户 root
  • -v:数据卷挂载 :将/home/node_red软连接到/data
  • -privileged:分配root权限 true
  • /home/node_red:数据存储路径
  • nodered:docker服务包全称
  • –restart=always:设置开机自启动

通过端口的不同,部署多个node-red:

  • 端口为1882:sudo docker run -u root:node-red -v /home/node_red:/data --privileged=true -p 1882:1880 --name mynodered2 -d nodered/node-red --restart=always
  • 端口为1883:sudo docker run -u root:node-red -v /home/node_red:/data --privileged=true -p 1884:1880 --name mynodered4 -d nodered/node-red --restart=always
    2
  1. 查看容器的运行信息,验证node-red容器是否正常运行:docker ps
    4
  • 查看指定容器状态:docker ps -a | grep node-red5
  • 查看容器运行日志:docker logs --since 30m <容器名>

此处 --since 30m 为查看此容器30分钟之内的日志情况
1

  1. 验证服务:在浏览器里打开:http://ip:端口
    6
    回到目录

3.2 查看\关闭\删除容器

  • 查看所有在运行的容器:docker ps -a
  • 查看指定容器状态:docker ps -a | grep node-red
  • 查看容器运行日志:docker logs --since 30m <容器名>
  • 关闭容器:docker stop <容器名>
  • 删除容器:docker rm <容器名>

回到目录

四、Docker删除Redis镜像

  • 查看全部镜像 命令:docker images
  • 删除镜像 命令 :docker rmi <容器 id>

回到目录

五、离线安装node-red节点

以安装node-red-contrib-loop-processing节点为例

  • 一、在已经安装node-red指定节点的服务器操作
  1. 在已经安装node-red指定节点node-red浏览器界面,查看安装节点,复制节点全称
    1
  2. 在服务器搜索,找到节点的安装目录,执行命令:find / -name node-red-contrib-loop-processing
  3. 进入该目录的上级目录,并压缩该文件夹:tar -zcvf node-red-contrib-loop-processing.tar.gz node-red-contrib-loop-processing/
    1
    2
  • 二、在需要离线安装node-red指定节点的服务器操作
  1. 查找node_modules的位置,执行命令:find / -name node_modules
    4

  2. 进入目录,并将上面的压缩包上传至该目录
    2

  3. 解压缩:tar -xvf node-red-contrib-loop-processing.tar.gz
    5

  4. 关闭容器任务:docker stop 容器名

  5. 重启容器任务:docker start 容器名
    6

  6. 刷新浏览器地址:http://ip:1880,可以看到此时node-red-contrib-loop-processing节点已经可以使用了
    7

回到目录

http://www.lryc.cn/news/196814.html

相关文章:

  • 王兴投资5G小基站
  • 【SA8295P 源码分析 (一)】54 - /ifs/bin/startupmgr 程序工作流程分析 及 script.c 介绍
  • git 使用
  • MFC扩展库BCGControlBar Pro v33.6新版亮点 - 图形管理器改造升级
  • 云上攻防-云原生篇KubernetesK8s安全APIKubelet未授权访问容器执行
  • Django 访问静态文件的APP staticfiles
  • Airbnb 迁移 SwiftUI 实践
  • 爱胜品YPS-1133DN系列打印机与奔图P3301DN打印机耗材更换的简单对比说明
  • “高级小程序开发指南“
  • 分类算法-逻辑回归与二分类
  • 金融液冷数据中心,噱头还是趋势?
  • LeetCode 高频题目分类列表
  • 为什么模方有时候置平之后再打开,置平的地方纹理就缺失了,显示为下图中反光的灰色?
  • k8s基础 随笔
  • c# 关于某管理业务系统对数据统计问题.
  • nginx 配置相关详解
  • 解决spring项目中无法加载resources下文件
  • 【广州华锐互动】人体血管器官3D动态展示为医学生提供哪些便利?
  • 【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.7 拖放事件
  • 【Linux】介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用
  • GUN C/C++ undefined reference to symbol ‘dlclose@@GLIBC_2.2.5‘
  • RabbitMQ概述,死信队列
  • 【开发日常】insmod: error inserting ‘*.ko‘: -1 Unknown symbol in module原理分析
  • 圆弧插补【C#】
  • Redis EmbeddedString
  • SpringMVC之WEB-INF下页面跳转@ModelAttributeIDEA tomcat控制台中文乱码问题处理
  • 利用ChatGPT练习口语
  • 【Django 01】环境搭配与项目配置
  • PyCharm配置运行参数
  • ChatGPT AIGC 实现Excel 交叉查找 Index+match 函数