Docker海賊Hypriotを使ってRaspberry Pi上でゼロから任意アプリを15分で起動する方法
概要
HypriotというLinux Distributionを15分ぐらいでラズパイにインストールして、Dockerで楽にアプリを動かしたり、環境構築したりしようっていう話です。 問題が発生しない限り、ラズパイにキーボードやディスプレイをつける必要もないです。
※15分かどうかはダウンロード速度に主に依存するので、15分ですまなくてもどうかお許しください。
用意するもの
- Raspberry Pi 2
- Wifiドングル(USB接続, Raspberry Piと互換性のあるもの)
- Mac OS Xのマシン + マイクロSDカードリーダ・ライタ
- SSID, パスワードがわかっているWifiアクセスポイント
Raspberry Pi 2 を動かしていて不満なポイントは?
以下のようなことです。
- apt-get等でインストールにかかる時間が馬鹿にならない。
- バージョンの問題等で失敗することも多く、ごそごそ修正する羽目になる
- しばらく環境をいじっていると、どこをどういじったかわからなくなり、クリーンな状態からどうすれば、動かしたいアプリの実行環境になるのか、完全には把握できなくなる。
- (きっちりシャットダウンせずに)電源抜き差しすることでSDカードが壊れやすく、壊れると上記理由で復活が面倒でガッカリする
Dockerの利用
上記の問題点は最近話題のDockerでおおかた解決可能なものです。環境セットアップをDockerfileの形で書いて残しておくこと、イメージをビルドしたら、docker hub等のリポジトリにアップロードしておくことが必要ですが、それさえできれば、以下のようなメリットが得られます。
- dockerだけ入った素の環境から、 docker run 一発で高速、自動的にアプリの動作環境が再現できる
- Dockerfileがあれば、どう作られたかは明らか
- 公式を含む、他の人が作ったDockerイメージも流用、派生できるため、大きなモジュールのインストールに時間を割く必要もない。
便利!
残る課題
しかしながら、Dockerだけでは解決しない問題があります。それは、Dockerを動かす環境自体を作るところも結構面倒ということです。少なくとも、以下のようなものが必要でしょう。
面倒だ!
Hypriot! (はいぷらいおっと?はいぷりおっと?)
そこで、HypriotというLinux Distributionの出番です。
公式: Docker Pirates ARMed with explosive stuff · Docker Pirates ARMed with explosive stuff
Hypriotのとくちょう
- ロゴがドクロマークで怖そう。
- 公式サイトの構成がイマイチで情報を探しにくい(汗)
- RaspberryPi (ARM)で動作するDebian系Linuxディストリビューション (基本はRaspbianらしいです)
- 余分なプログラムが入っておらずサイズが小さい
- Wifi, Bonjour (avahi), ssh等がセットアップ済みのイメージが用意されており、Wifiドングルさえ挿しておけば起動後、即sshで外部からのコントロールが可能
- 最新のDocker/Docker Machineが入っており、すぐにDockerを利用できる。
まあ、要するにDockerに最適化された楽ちんなRaspberry Pi向けLinuxです。
※ ちなみに、ドクロの下にでかでかと "Docker Pirates ARMed with explosive stuff" とか書いてありますが、直訳すると 「爆発物を装備(ARM)したDocker海賊」みたいな感じで、Dockerと、Raspberry PiのCPUアーキテクチャであるARMをうまくひっかけつつカッチョいい感じのイメージにしたかったという意思がひしひしと伝わってきます。一部タイトルに頂きましたw
Hypriotのインストール手順 (Mac OS X向け)
今回はflashという名前の、hypriotが用意したスクリプトを使います。 このスクリプトは、Mac OS XとLinux向けになっています。
Windowsの場合は、残念ながらこのスクリプトは使えません。 別の方法でSDカードにイメージを書き込んで、occidentalis.txtを手動で修正するなどしてください。
GitHub - hypriot/flash: Command line script to flash SD card images for the Raspberry Pi
続きを読む