Docker
今までは CPU の違いから導入できなかったみたいですが、現在では公式にサポートされているようです。
また、hypriot が Docker 同梱の OS(Raspbian ベース?)を用意しているので、それを利用する方法もあります。
今回は標準の Raspbian へ後から導入します。
導入
公式ブログが一番わかりやすいと思います。
www.raspberrypi.org
どうやらコマンド 1 つで入るようです。
$curl -sSL https://get.docker.com | sh
以下を打つと非 root 状態でも利用できるようになります。
再ログインが必要です。
$sudo usermod -aG docker [username]
ラズパイの CPU は ARM なので、ほとんどの docker は動きません。
テスト
とりあえず確認として hypriot の docker を動かしてみます。
このサイトを参照させていただきました。
hammmm.hatenablog.com
$docker run -d -p 80:80 hypriot/rpi-busybox-httpd
ラズパイのアドレスを PC で覗くと hypriot の画像が現れます。
http://192.168.xxx.xxx
確認が終わったら ps で動作状況を確認し、stop で名前を指定して停止します。
$docker ps
$docker stop [NAME]
docker-compose
かなりハマりました。
ただネットの海は広く、先人がいらっしゃいました。
www.berthon.eu
導入
では、上記サイトを参考に docker-compose を入れていきます。
とはいっても特別に調整などは不要なので、参考にというかほとんどそのまま打てば問題ありません。
まずは docker-compose を clone してローカルへファイルを準備します。
$ git clone https://github.com/docker/compose.git
続いて ARM へ対応するように Dockerfile の内容を置換していきます。
$ cd compose
$ cp -i Dockerfile Dockerfile.armhf
$ sed -i -e 's/^FROM debian\:/FROM armhf\/debian:/' Dockerfile.armhf
$ sed -i -e 's/x86_64/armel/g' Dockerfile.armhf
ビルドして走らせます。結構時間がかかります。
$ docker build -t docker-compose:armhf -f Dockerfile.armhf .
$ docker run --rm --entrypoint="script/build/linux-entrypoint" -v $(pwd)/dist:/code/dist -v $(pwd)/.git:/code/.git "docker-compose:armhf"
dist 以下ファイルを bin へ移動させ、コマンドで起動できるようにします。
$ ls -l dist/
$ sudo cp dist/docker-compose-Linux-armv7l /usr/local/bin/docker-compose
$ sudo chown root:root /usr/local/bin/docker-compose
$ sudo chmod 0755 /usr/local/bin/docker-compose
終了後、以下のようになれば成功です。
$ docker-compose version
docker-compose version 1.13.0dev, build ae2cc6b
docker-py version: 2.2.1
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t 3 May 2016