docker安装使用Node-RED实践

最近了解到Node-RED,感觉配合HA做自动化挺不错的,于是折腾一番,搭个环境来学习学习。


1.准备

Ubuntu 18.04 64位

2.过程

2.1.安装docker

版本强迫症,所以按官网教程来装最新社区版。

1)安装依赖的工具

1
$ sudo apt-get install apt-transport-https ca-certificates curlsoftware-properties-common

2)获取官方GPG key

1
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudoapt-key add -

3)增加软件源

1
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

DEBUG:之前踩坑,18.04刚出还没有源,需要手动替换$(lsb_release -cs)为17.10版本的源artful

4)更新源索引

1
$ sudo apt-get update

5)安装docker-ce

1
sudo apt-get install docker-ce

2.2.设置免sudo执行docker命令

1)将当前用户加入docker组

1
$ sudo gpasswd -a ${USER} docker

2)重启docker

1
$ sudo service docker restart

3)刷新docker组

1
$ newgrp -docker

3.安装Node-RED

1)获取node-red镜像

1
$ docker pull nodered/node-red-docker

2)创建docker-nodered容器,运行node-red镜像

1
$ docker run -d -p 1880:1880 --name docker-nodered --user=root nodered/node-red-docker

WARN:增加–user=root参数以获取root权限。
3)进入Docker容器

1
2
$ docker exec -it docker-nodered /bin/bash
root@容器ID:/usr/src/node-red#

INFO:执行命令后切换到虚拟机环境了,系统也是Ubuntu

4.升级node.js

镜像自带的node.js版本是6.x的,而看github项目介绍node-red-contrib-home-assistant插件需求环境是>8.0

DEBUG:后续的“docker#”表示是在docker容器环境操作。
1)检查版本

1
docker# node -v

2)清除node缓存;

1
docker# npm cache clean -f

3)安装node版本管理工具’n’

1
docker# npm install n -g

4)使用版本管理工具安装指定node或者升级到最新node版本,实测最新版本10.3.0不行,装8.11.2吧

1
docker# n 8.11.2

5)使用node -v查看node版本,如果版本号改变为你想要的则升级成功。

1
docker# node -v

5.安装插件

此步骤也可以在web端操作

1)切换/data目录

1
docker# cd /data

2)安装插件

1
docker# npm install node-red-contrib-home-assistant

3)退出docker容器环境

1
docker# exit

4)重启容器,

1
$ docker restart docker-nodered

DEBUG:容器名“docker-nodered”是之前docker run指定的