Raspberry PiでもDocker。Hypriotレビュー
皆さん、IoTが流行ですが、何か作ってみたりしていますか?IoTはハードウェアの部分と、センサーからの値を取り扱うソフトウェアの部分が組み合わさっているので、これまでにないスキルが必要になります。そのため、Raspberry PiやArduinoを購入したのは良いけれどなかなか活用できずにいるという方も多いのではないでしょうか。
そこで今回はプログラマーらしいRaspberry Piの活用として、Dockerを動かすためのディストリビューションであるHypriotを紹介します。Rasbianがベースになっており、そこから余計なものを取り除いたディストリビューションとなっています。
Hypriotのインストール
Hypriotのインストールは通常のRasbianと変わらず、SDカードにOSイメージの内容を書き込みます。ただし専用のスクリプト(flash)が用意されており、こちらを使うととても簡単にセットアップできます。
特に面白いのがWiFiのセットアップができることです。つまり有線LANがなかったとしても、無線アダプタがあれば(Raspberry Pi3であればデフォルトで搭載されています)flashコマンドを使うことで外付けキーボードやHDMIディスプレイがなかったとしてもセットアップできます。さらにホスト名も決められますので、SDカードにOSをデプロイしてRaspberry Piを起動したらSSH接続する際にIPアドレスを調べることなくホスト名で接続できます。
$ flash --help usage: flash [options] name-of-rpi.img Flash a local or remote Raspberry Pi SD card image. OPTIONS: --help|-h Show this message --bootconf|-C Copy this config file to /boot/config.txt --config|-c Copy this config file to /boot/device-init.yaml (or occidentalis.txt) --hostname|-n Set hostname for this SD image --ssid|-s Set WiFi SSID for this SD image --password|-p Set WiFI password for this SD image --clusterlab|-l Start Cluster-Lab on boot: true or false --device|-d Card Device
デプロイはしばらくかかります。イメージファイルは外部のURLを指定することもできますが、繰り返しインストールすることもありますのでイメージファイルをダウンロードした方が良いでしょう。
Downloads · Docker Pirates ARMed with explosive stuff
接続する
セットアップが完了したらSSHでログインします。デフォルトのユーザ名はpirate、パスワードはhypriotになります。通常のRaspberry Piとは異なるので注意してください。
接続したら、後は自由にDockerコマンドが使えます。例えば専用のHTTPサーバが用意されています。
docker run -d -p 80:80 hypriot/rpi-busybox-httpd
これが立ち上がれば http://(HypriotのIPアドレスまたはホスト名)/ でアクセスできます。
注意点
Raspberry Piはよく知られている通り、ARMのCPUとなっています。そのためDockerで取得できるイメージがそのまま実行できるとは限りません。そのため、Docker HubではHypriotに対応したイメージをARMで検索したり、hypriotで検索すると出てくるようになっています。hypriotで検索した場合、45くらいのイメージが出てきますので大抵の用途で使えるのではないでしょうか。
Raspbery Piを使うことでローコストなDocker環境が手に入ります。クラスタリングさせるのも簡単ですし、ちょっとした社内向けサービスであれば十分使えるでしょう(ストレージがSDカードなのでバックアップはきちんと取っておく必要がありそうです)。Dockerの練習としても面白そうです。一度立ち上げてしまえば、WindowsやMac OSXのDockerコマンドでリモート操作もできるでしょう。
Raspberry Piが家で眠ってしまっているという方はお試しを。
Docker Pirates ARMed with explosive stuff · Docker Pirates ARMed with explosive stuff