あさのひとりごと

3日坊主にならないように、全力を尽くします。 記事は個人のひとりごとです。所属する組織の意見を代表するほど、仕事熱心じゃないです。

RaspberryPiでDockerを安定稼働させる(キリッ

このブログは、次のAdvent Calendarの12/10のエントリーです。

Raspberry Pi Advent Calendar 2015 - Adventar
横浜医療情報専門学校プログラミングサークル Advent Calendar 2015 - Adventar


今回は、RaspberryPiで、Dockerを「安定稼働」させてみたいと思います。


RaspberryPiとは?

Raspberry Pi(ラズベリーパイ)は、教育用に開発されたシングルボードコンピュータです。
ARMプロセッサを搭載し、OSをSDカードにインストールすることで動作します。

もっともハイスペックな「RaspberryPi2」は、ARM Cortex A7(4コア900MHz)、1GBメモリを搭載しています。
秋葉原秋月電子通商で、5400円。安っ。今回は、これを使います。
akizukidenshi.com


Dockerとは?

Docker(ドッカー)は、コンテナ仮想化環境でアプリケーションを管理/実行するためのオープンソースのミドルウエアです。
アプリケーションと実行環境をすべて含めて「Dockerイメージ」にパッケージングして管理できます。
www.docker.com



1.RaspberryPiのSD作成

RaspberryPiでDockerの実行環境がセットアップ済みのイメージが以下で公開されています。
ダウンロードしましょう!
最新版は、Version 0.6.1です。

Hypriot Docker Image
Downloads · Docker Pirates ARMed with explosive stuff


ダウンロードしたイメージからRaspberry Pi起動用のmicroSDカードを作成するため、「Win32 Disk Imager」というツールをダウンロード/インストールしてください。
Win32 Disk Imager 日本語情報トップページ - OSDN


Win32 Disk Imagerのインストールが完了したら、起動します。
ダウンロードしたHypriot Docker Imageのイメージファイルを指定して[Write]ボタンをクリック!
しばらくするとmicroSDカードへの書き込みが完了します。


2.RaspberryPi起動

作成したSDカードをセットして、RaspberryPiの電源をONします!
組み立て方などは、こちらで!

Raspberry Piで電子工作をはじめよう! ~まずはRasbian(OS)のセットアップから
codezine.jp



3.Dockerコンテナの起動

Hypriot Docker Imageは、起動するとDHCPからIPアドレスを取得します。
SSHでアクセスし、次のアカウントでログインします。

ユーザ名:root
パスワード:hypriot

次のコマンドで、Apache httpが動くDockerコンテナを起動します。

$ docker run -d -p 80:80 hypriot/rpi-busybox-httpd

Apache httpdが動作していることを確認するために
ブラウザからRaspberryPiのアドレスの80番ポートにアクセスします。

超、簡単。
f:id:dr_asa:20151206210539j:plain

あたりまえですが、Dockerコマンドが利用できます。
さあ、DockerHubから、いい感じのイメージをpullして動かしてみましょう!

ここで注意したいことが。
DockerHub上で公開されているイメージの大半はx86/x64用のイメージです。
RaspberryPiはARMなので、ARM用のイメージでないと動きません。

ですが、世界中の有志がRaspberryPi用のイメージを
たくさん公開しているので、それをつかえばOKです。

RaspberryPi用のイメージは
「rpi-****」
と、プレフィックスにrpiが付きます。DockerHubで検索してみてください。
f:id:dr_asa:20151206210948j:plain



4.Hypriot Dockerのステッカーを作る

と、、、、、、これまでの話は
ほぼ、どうでもいい内容なので、時間のない方はスルーしても構いませんが
ここからは、大事な話になります。

RaspberryPiでDockerを動かす!というのは
その筋の人*1以外は、なんの面白味もない話です。
しかも、非力なRaspberryPiノードでDockerを動かして、一体誰得?ですし、
LEDが光るわけでもモーターが回るわけでもないので、それこそ言葉では形容しづらい地味さです。

1* カーネル関係者やネットワークガチ勢、クラスタ厨、自動化ヲタを指す


そこで、「RaspberryPiでDockerを動かしているんだぞ!」をアピールするために

Hypriot Dockerのステッカーを作ります。

画像はこちらですね。
http://blog.hypriot.com/images/jessie-release/one-to-rule-them-all_blog.jpg


ステッカー作成用紙は、A-ONEやELECOM、サンワサプライあたりのが、いい感じです。
ヨドバシカメラビックカメラなどの量販店で購入します。

私は、これを使いました。
www.a-one.co.jp


あとは、プリンタでロゴを印刷すると、ステッカーの出来上がりです。
ステッカーの注意書きにあるプリンタの設定に従うのが、きれいに作るコツです。
私はRaspberryPiのケースには貼らずに、PCの背面に貼っています。

これで、完成です。


5.Dockerの実行環境(物理)を整える

Dockerのアイコンは、Moby Dockというクジラがモチーフになっています。
f:id:dr_asa:20151206210834p:plain

Dockerでクラスタ環境を管理するDockerSwarmは
複数のクジラがコンテナを運んでいます。
f:id:dr_asa:20151206211406j:plain

Dockerコンテナをホスト上で一元管理するためのDockerComposeは、
タコです。
f:id:dr_asa:20151206210841p:plain

Dockerイメージを公開するためのDockerRegistryは
貝です。
f:id:dr_asa:20151206210847p:plain

と、ここまでくると勘のいい方は、もうお気づきかもしれませんね。
普通のRaspberryPiケースに入れたままでは、安定稼働するかどうか、、、大いに不安です。

そこで、こちらを使ってRaspberryPi+Dockerの実行環境を整えます。
www.amazon.co.jp


RaspberryPiのケースはこちらが良いでしょう。
smarticase.com


LEGOの組み立てには、2時間ぐらいかかりますが
Dockerが安定して動作する実行環境(物理)が整いました。
f:id:dr_asa:20151206210914j:plain

これでなんとか
あ、そういえばRaspberryPiでDocker動かしたんだけどさぁ、、
と、語ってよいレベルに到達することができました。



そして、「で、おまえ誰?」
codezine.jp

*1:

【書評】アプリを作ろう! Android入門 Android Studio版 Android5対応 読みました!

とある某専門学校で、Androidアプリ開発の講義を担当しているので
学生向けの資料作成の勉強!のため、読破しました。

http://www.amazon.co.jp/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E4%BD%9C%E3%82%8D%E3%81%86-Android%E5%85%A5%E9%96%80-Android-Studio%E7%89%88-Android5%E5%AF%BE%E5%BF%9C/dp/482229644X/ref=sr_1_1?s=books&ie=UTF8&qid=1440762585&sr=1-1&keywords=Androidwww.amazon.co.jp

本書は
AndroidStudioをベースに
1章から丁寧な手順にしたがって進めれば
Androidアプリ開発の基礎知識や
開発環境の使い方や
画面レイアウトの作成/モデルクラスの実装
センサーを使った実装からアプリ公開の手順までを
学習できます。

専門学校で講義をしていて一番苦労することは
ずばり
「開発環境の構築」
です。

手順通りにやってください、という作業は
ほんの少しでも手順が不親切だと
あっという間にカオスな空間になります。

本書のように、手順だけでなく
設定内容の意味などがきちんと説明があるので
教育教材として、とても良いなと思いました。

あと、、、、、、、、
相手に分かりやすく伝えるには
「相手がなにが分からないか」を正しく知って
「相手になにを伝えるべきか」を正しく選ふ必要があります。

入門書は、
説明しづらいことや難しいことを「おまじない」としてしまうのもダメだけど
たくさんの情報をぎゅうぎゅう詰め込みすぎても、
「なにがポイントか?」が分からなくなってしまってダメなので
さじ加減がとても難しいのですが
本書は、とてもバランスが良くて勉強になりました。

高江さん、ありがとうございました!

© 2017 ASA.