はじめに
DockerでNode-REDを実行する方法については公式ドキュメントに記載されています。
Play with Dockerはブラウザで使える無料のDocker実行環境で、PCにDockerをインストールする必要がありません。
Play with DockerでNode-REDを動かしてみました。
メリット
ブラウザだけで使える
制限時間は4時間
他のサービス(ソフトウェアエンジニア向けのインタラクティブな学習およびトレーニングプラットフォームを提供するKatacoda環境)では制限時間が1時間です。
タイマーが表示されて見やすいです。
ポートが使える
Node-REDは標準ではポート番号1880を使用します。
リンクからNode-REDフローを開くことができます。
sshが使える
Play with Docker環境へsshでログインすることができます。
例.
$ ssh ip172-18-0-81-c9rqius33d5g00b2othg@direct.labs.play-with-docker.com
scpでflows.jsonファイルなどをコピー(バックアップ)することができます。
例.
$ scp ip172-18-0-81-c9rqius33d5g00b2othg@direct.labs.play-with-docker.com:.node-red/flows.json ./
gitコマンドが使える
Githubから必要なファイルをcloneできます。
利用方法
Docker Hubアカウントの作成
Docker HubでDocker ID(アカウント)を作成します。
ログイン
Play with Dockerのサイトへアクセスします。
Loginボタンを押します。
Docker ID(アカウント)でログインします。
Play with Dockerの開始
Startボタンを押します。
Node-REDの起動方法
.node-redディレクトリの作成と書き込み権限の変更
$ mkdir .node-red
$ chmod 777 .node-red
Node-REDの起動
$ docker run -d -p 1880:1880 -v /root/.node-red:/data nodered/node-red:latest
MQTTを動かす方法 (TIPS)
Node-REDでMQTTを動かす場合、docker起動時にポート番号1883を追加で設定します。
$ docker run -d -p 1880:1880 -p 1883:1883 -v /root/.node-red:/data nodered/node-red:latest
Play with Docker内でMQTTを試す
mosquittoパッケージをインストールします。
$ apk update
$ apk upgrade
$ apk add mosquitto
$ apk add mosquitto-clients
mosquitto_pubコマンド(publish)でメッセージを送ります。
$ mosquitto_pub -h localhost -p 1883 -t test/test -m hello
外部からMQTTを試す
ブラウザ上のポート番号1883はHTTPアクセスになってしまうため、直接ポート番号1883へアクセスする方法が見つかりませんでした。
ngrokコマンドを使用して外部からMQTT接続できました。
$ wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
$ unzip *.zip
$ ./ngrok authtoken [アクセストークン]
$ ./ngrok tcp 1883
$ mosquitto_pub -h 6.tcp.ngrok.io -p 13119 -t test/test -m hello
セッションの終了
使い終わったらセッションを終了させます。
さいごに
良きNode-REDライフを!