使用 Docker 安装Node-Red Container开发App 藉由 Bluemix 所含 Weather Company Data for IBM 服务取得世界各地气象资料

作者:陳兆麟 Email:chenlin2@ms9.hinet.net

Docker公司已于2016/7/29正式推出全新的 Docker for Windows 版本,这个版本是个原生 Windows 应用程序,不再需要借助 VirtualBox、Docker Toolbox、boot2docker 或其它工具就可以执行,只要你的 Windows 操作系统是Windows 10 专业版或企业版 (64-bit) 即可安装;新版 Docker for Windows 大幅简化安装与设定的过程,降低使用 Docker 的门坎,搭配 Kitematic 可视化的操作接口,更让你连一行指令都不用输入,就可以顺利下载、启动、停止、删除容器,大幅降低使用容器的门坎。User 只要至 docker hub 下载所需要的 images 檔 (内含App + OS),启动 Container 后就可执行应用程序;这比以往在 linux操作系统下安装应用程序好太多了(因user 若不熟悉 linux就很容易安装失败, 这也就是玩linux 会有挫折感的原因)。近日 IBM 与 [The Weather Company] 宣布缔结开创性的全球战略联盟,将把大规模的天气数据服务平台迁移至IBM云计算平台 [Weather Company Data for IBM] 。以下范例在Window 环境安装 Docker,再至 Docker hub 下载 node-red-docker 映像档,启动 Container 后,在 node-red 窗口环境下开发 App,藉由 Bluemix services 所提供的 [Weather Company Data for IBM] 服务读取全世界各地的气温。

開發環境:Win7 (64 bit) ,Docker Toolbox,Bluemix ,Node-red

1.参考附录 (1) 在 Win7安装 Docker Toolbox.

(Win 10 可直接安装 Docker 请参考附录2 )

2.桌面点选 (Docker Quickstart Terminal) 名稱

$ docker-machine ls (Docker Quickstart Terminal接口执行,确认虚拟机default 已安装)

NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default virtualbox Running tcp://192.168.99.101:2376 v1.10.3

$ docker-machine env default

export DOCKER_TLS_VERIFY=”1”
export DOCKER_HOST=”tcp://192.168.99.100:2376”
export DOCKER_CERT_PATH=”C:\Users\slim1.docker\machine\machines\default”
export DOCKER_MACHINE_NAME=”default”

Run this command to configure your shell:
eval (“C:\Program Files\Docker Toolbox\docker-machine.exe” env default)
$ docker-machine ls (确定虚拟机已经启动)

NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v1.10.3

3.使用 putty (见附录 3)登录虚拟机器(ip:192.168.99.100 username=docker password=tcuser)

//至 docker hub 下载安装 nodered/node-red-docker images
//并建立启动 docker-nodered container

$docker run -it -p 1880:1880 --name docker-nodered nodered/node-red-docker

4. 再次以 putty 开起新窗口登录虚拟机器观察 images & container 是否已安装

$docker images
$docker ps

5. 浏览器输入 http://192.168.99.100:1880 显示 Node-Red 工作窗口

6. 进入 docker-nodered container 命令列

$ docker exec -it docker-nodered /bin/bash
$cd /data
$npm install node-red-bluemix-nodes (安装 Weather node)
$npm install node-red-contrib-ibm-watson-iot (安装 waston IoT node)
$npm install node-red-contrib-scx-ibmiotapp (安装 ibmiot node)
$exit (离开 docker-nodered container 命令列)
$docker stop docker-nodered (重新启动 docker-nodered)
$docker start docker-nodered

7. node-red工作窗口左侧调色盘将新增以下节点

8. 进入IBM Bluemix: https://console.ng.bluemix.net/ 点选 Sign Up 注册后登录 (30天试用期免费) 将 username 及 password 记录

建立 Organization 名称

建立 Space , Organization, Space Region (US South)

9. 点选型录 (CATALOG) =>选择 [Weather Company Data for IBM] 服务

点选 [CREATE] (若前项 Region 不为US South,程序执行时会认证失败)

点选 [Service Credentials]


###记录 username, password

###10. 点选型录 (CATALOG) =>选择 [Internet of thing platform] 服务

点选 [create]

11. 启动服务 点选 [Launch dashboard]

12.点选 [device] 点选 [Add Device]

13.点选 [ Create device type ] 点选 [ Create device type ]

14.填选 Name = node-red [next] ->[create]

15.选择 [device type] node-red ->Next DeviceID= node-red-device-1 填入

16.点选右下角 Next 至结束 Add 将取得以下类似数据 (请记录)

17. 建立Access key (点选 ACCESS) 点选 [API Keys]

记录 API key 及 Authentication Token

18.确定 docker-nodered container已执行

$docker ps

19. 若docker-nodered container尚未启动

$docker ps -a

CONTAINER ID IMAGE ………….. STATUS NAMES
5b2f6837bc45 nodered/node-red-docker ……. Exited (137) docker-nodered

$docker start docker-nodered

20. 在 node-red 工作区开发 flow:输入经纬度后由 [Weather Company Data for IBM] 服务输出当地温度。

21. 点选 [import]->[Clipboard]

22. 下载附录 6之 temp.json 贴入 import nodes

23.汇入后flow显示如下

24. 修改 GeoCode 填入指定经纬度 64.963051,-19.020835

25.修改 Receive from Watson IoT 填入步骤(17) 所得 API key,API Token

26.修改 Get Wather Observations填入步骤(9) 所得username,password

27.修改 Receive CMD填入步骤 (16) 所得org,device Type ID,Auth Token

“markdown” “width:600px;heigth:200px”)

28.修改 Send to Watson IoT填入步骤(16) 所得org,device Type ID,Auth Token

29. 修改Send CMD填入步骤 (17) API key,API Token

30. 修改Check Temperature 设定温度门坎 25C

31.测试:冰岛 (64.963051,-19.020835)

GeoCode填入指定经纬度64.963051,-19.020835,点选右上角[Deploy], 点选 GeoCode 前端方块,将经纬度送出,由 debug 看出回应 13C

32.测试:福建省福州市 (26.062105,119.300213)

GeoCode填入指定经纬度26.062105,119.300213,点选右上角[Deploy],点选 GeoCode 前端方块,将经纬度送出,由 debug 看出回应 29C

附錄

  1. Win7 安装Docker Toolbox:
    https://www.docker.com/products/docker-toolbox
    http://knight-.iteye.com/blog/2254627
    http://rominirani.com/2015/08/15/docker-toolbox-setup-windows/
    https://getcarina.com/docs/troubleshooting/troubleshooting-windows-docker-vm-startup/
    http://dockone.io/article/594
  2. Win 10 安装Docker
    http://blog.miniasp.com/post/2016/08/01/Docker-for-Windows-1-12-Released.aspx
  3. putty安装及使用:
    http://www.ascc.sinica.edu.tw/putty
  4. bluemix 全球系统维护现况
    https://developer.ibm.com/bluemix/support/#status
  5. Node-red 初学手册
    http://www.slideshare.net/JosephChang8/bluemix-nodered-part-i
  6. temp.json
    https://1drv.ms/u/s!AkBmzWP0h-VxbRVVYKxokrArvYo

參考文獻:

1.https://developer.ibm.com/recipes/tutorials/nodered-on-docker-using-local-services-and-ibm-weather-data/
2.https://developer.ibm.com/recipes/tutorials/nodered-on-docker-using-local-data-and-watson-apis/
3.https://developer.ibm.com/dwblog/2016/how-the-weather-company-delivers-the-worlds-weather/
4.http://weathernews.com/tw/c/company/
5.https://www.google.com.tw/maps
6.https://hub.docker.com/
7.http://www.ithome.com.tw/news/103247
8.http://blog.miniasp.com/post/2016/08/01/Docker-for-Windows-1-12-Released.aspx
9.http://mis101bird.js.org/v2i1/
10.http://blog.miniasp.com/post/2016/08/01/Docker-for-Windows-1-12-Released.aspx
11.http://www.ithome.com.tw/news/103247
12.https://1drv.ms/f/s!AkBmzWP0h-Vxbr7h1uTNsTMcPWI
13.https://1drv.ms/b/s!AkBmzWP0h-VxazOBOsVz8nGMLpM
14.https://1drv.ms/b/s!AkBmzWP0h-VxbN_7DLHsQwBH7Ac
15.https://www.youtube.com/watch?v=24JAF9Eu1mk&list=UUOTZe-b_jE_Ovy9K9UhZ4BA&index=74
16.https://www.youtube.com/watch?v=wSmJ-rwUo8I&list=UUOTZe-b_jE_Ovy9K9UhZ4BA&index=73
17.https://www.youtube.com/watch?v=SOsn6MvGH60&list=UUOTZe-b_jE_Ovy9K9UhZ4BA&index=72

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐