这篇文章介绍一下如何使用Node-RED的官方镜像。
使用如下命令拉取官方镜像:
拉取普通版本镜像:docker pull nodered/node-red:版本号
或者
拉取简化版镜像:docker pull nodered/node-red:版本号-minimal
- 以1.0.4的普通版本为例,拉取命令执行示例如下所示
liumiaocn:~ liumiao$ docker pull nodered/node-red:1.0.4 1.0.4: Pulling from nodered/node-red ..省略 Digest: sha256:be27cf89f0d8491f21ad53236834085c549f8fa75457ed9e695582e1ec141096 Status: Downloaded newer image for nodered/node-red:1.0.4 docker.io/nodered/node-red:1.0.4 liumiaocn:~ liumiao$
- 镜像确认
liumiaocn:~ liumiao$ docker images |grep nodered nodered/node-red 1.0.4 37f21089d3eb 32 hours ago 448MB liumiaocn:~ liumiao$
注:还有一些其他版本的比如ARM和CPU的位数不同,可根据需要进行相应版本的镜像下载。
环境变量 环境变量名称 环境变量设定内容 环境变量说明 FLOWS 设定的JSON文件 用于指定设定,为空时使用settings.js的设定内容 NODE_RED_ENABLE_SAFE_MODE true或false 设定安全模式开启或者关闭 NODE_RED_ENABLE_PROJECTS true或false 设定项目特性开启或者关闭 NODE_OPTIONS 运行时参数设定 用于调整运行态的设定,比如可以通过指定max_old_space_size来修改Node.js垃圾收集设定中堆的大小 TZ 时区设定 用于设定容器的时区,比如通过TZ=Asia/Shanghai来设定为CST时区 数据卷 数据卷说明 镜像内路径 数据或者配置信息的卷 /data注意事项:从0.2版本升级至1.0之后的版本需要注意权限的问题,可对数据目录使用chown -R 1000:1000 命令来解决相关问题。
liumiaocn:nodered liumiao$ docker exec -it nodered_node-red_1 sh ~ $ id uid=1000(node-red) gid=1000(node-red) ~ $启动容器
使用如下命令即可启动Node-RED的容器
执行命令:docker run -it -p 1880:1880 --name nodered nodered/node-red:1.0.4
liumiaocn:~ liumiao$ docker run -it -p 1880:1880 -e TZ=Asia/Shanghai --name nodered nodered/node-red:1.0.4 > node-red-docker@1.0.4 start /usr/src/node-red > node $NODE_OPTIONS node_modules/node-red/red.js $FLOWS "--userDir" "/data" 5 Mar 09:14:17 - [info] Welcome to Node-RED =================== 5 Mar 09:14:17 - [info] Node-RED version: v1.0.4 5 Mar 09:14:17 - [info] Node.js version: v10.19.0 5 Mar 09:14:17 - [info] Linux 4.9.184-linuxkit x64 LE 5 Mar 09:14:17 - [info] Loading palette nodes 5 Mar 09:14:18 - [info] Settings file : /data/settings.js 5 Mar 09:14:18 - [info] Context store : 'default' [module=memory] 5 Mar 09:14:18 - [info] User directory : /data 5 Mar 09:14:18 - [warn] Projects disabled : editorTheme.projects.enabled=false 5 Mar 09:14:18 - [info] Flows file : /data/flows.json 5 Mar 09:14:18 - [info] Creating new flow file 5 Mar 09:14:18 - [warn] --------------------------------------------------------------------- Your flow credentials file is encrypted using a system-generated key. If the system-generated key is lost for any reason, your credentials file will not be recoverable, you will have to delete it and re-enter your credentials. You should set your own key using the 'credentialSecret' option in your settings file. Node-RED will then re-encrypt your credentials file using your chosen key the next time you deploy a change. --------------------------------------------------------------------- 5 Mar 09:14:18 - [info] Server now running at http://127.0.0.1:1880/ 5 Mar 09:14:18 - [info] Starting flows 5 Mar 09:14:18 - [info] Started flows
-
结果确认
也可以使用Docker-Compose方式启动Node-RED,可以使用如下示例yaml文件:
liumiaocn:nodered liumiao$ cat docker-compose.yml version: "2" services: node-red: image: nodered/node-red:1.0.4 environment: - TZ=Asia/Shanghai ports: - "1880:1880" networks: - node-red-net volumes: - node-red-data volumes: node-red-data: networks: node-red-net: liumiaocn:nodered liumiao$
- 启动服务
liumiaocn:nodered liumiao$ docker-compose up -d Creating network "nodered_node-red-net" with the default driver Creating volume "nodered_node-red-data" with default driver Creating nodered_node-red_1 ... done liumiaocn:nodered liumiao$
- 服务确认
liumiaocn:nodered liumiao$ docker-compose ps Name Command State Ports ----------------------------------------------------------------------------------------- nodered_node-red_1 npm start -- --userDir /data Up (healthy) 0.0.0.0:1880->1880/tcp liumiaocn:nodered liumiao$参考内容
https://nodered.org/docs/getting-started/docker