これまでは色々とNode-REDを使用してきましたが今回はDocker環境を使ったものを設定します。
httpsが使用できないということもあり、ローカル環境のものでは無くクラウド環境のものを使用してきたのですが、今回はちょっとDockerの復習とNode-REDからSeleniumを使ってみることを見据えてやってみようと思います。また、以下のリンクを参考にしていましたが、少しだけWindows側では変更しなければならない事もあったのでその部分を追記してみようと思います。
参考
DockerでNode-REDコンテナを構築し実行する
参考のリンクの情報には以下の様に記載があります。このリンク先の情報は大変丁寧にかかれており素晴らしい内容だと思います。
$ docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red
上記を参考にしてコンテナを起動すると…


一見これで問題はなさそうなのですが、このままコンテナを起動しても1つだけうまくいかない部分があります(うまくいかないとはいってもコンテナは起動します)。
ちなみに以下のような内容でコンテナを起動しています(リンク先は英語になっていますが、下手な日本語にしてみました)
| 起動コマンド | 意味 |
|---|---|
| docker run | このコンテナを実行し、必要なら最初にローカルでビルドする |
| -it | 端末セッションをアタッチし、起動したCLI内でシェルなどの実行をする |
| -p 1880:1880 | ローカルホストのポート1880をコンテナ側のポート1880に接続する |
| -v node_red_data:/data | ホスト node_red_data ディレクトリをコンテナ /data ディレクトリにマウントする(ディレクトリの内容は永続する) |
| --name mynodered | このコンテナにローカル名を付ける |
| nodered/node-red | ベースとなるコンテナイメージ名 |
問題となっているのは-v node_red_data:/data←この部分になります。原因はパスの表記がWindowsでうまく解釈できないからのようです。
このあたりはWindowsに合う形で変更すれば問題ありません。今回はローカルホストのC:\node_red_dataをコンテナの/dataにマウントする形にします。
ドライブレターの部分は/c/とすれば良いようです。以下はPowerShellでの実行例になります。
PS > docker run -it -p 1880:1880 -v /c/node_red_data:/data --name mynodered nodered/node-red

実行するとNode-REDが起動します。あとは以下のリンクにブラウザでアクセスすればフローエディタにアクセスができます。
以下の様にNode-RED version 2.2が起動します。


あとは通常通り使用できそうです。
おわりに
ドキュメントが通りやったんですが、うまくいかなかったのでちょっと変更してみました。とはいえ、Dockerの実行環境さえあれば、一瞬でNode-REDの実行環境が構築できるのは非常に便利ですね。
これからはDocker環境でSeleniumの実行環境を作成してNode-REDからスクレイピングをやってみようと思います。