1. はじめに
今回は、自分自身への備忘録を兼ねて、Raspberry Pi に Docker & docker-compose をインストールする方法を、お伝えしたいと思います。
- 参考:Docker comes to Raspberry Pi
- 参考:Get Started with Docker on Raspberry Pi
- 参考:Raspberry Pi にDockerとDocker-composeを入れる
- 参考:Raspbian Jessie Lite で Docker する - インストール編
- 参考:Raspbian Jessie Lite で Docker する - GPIO on Alpine Linux 編
2. この記事を読んでできること
- Raspberry Piで Docker & docker-compose を使えるようになる。
3. 注意事項
- Docker のアーキテクチャは、armhf(ARM 32ビット)版となります。
- Raspberry piでは、ARM版のDockerコンテナしか使えないと思われる。
- Raspberry piでは、ホストOSが32ビットとなるため、ゲストOSも32ビットにしばられると思われる。
- しばりなくDockerを自由に使いたい方は64bitのホストOS(Windows/MacOS/Linux)にてDockerを使った方が幸せかもしれません。
4. 必要なもの
- Raspberry Pi(この記事では Raspberry Pi3B+ を利用)
- SDカード(この記事では Raspbian Buster Lite を利用)
- インターネット環境
5. dockerのインストール
- Dockerをインストールします。
- Dockerだけの利用でよければ、以下のコマンドだけで完了です。
コマンドプロンプト
// インストール
$ curl -sSL https://get.docker.com | sh
// グループの追加
$ sudo usermod -aG docker pi
// OS再起動(グループ追加を反映)
$ sudo shutdown -r now
// dockerサービスの有効化
$ sudo systemctl enable docker
// バージョン確認
$ docker --version
ocker version 19.03.6, build 369ce74
6. docker-composeのインストール
- docker-composeのインストールをインストールします。
- docker-compose.yml とかを使ってみたい方は、以下のコマンドも実行しましょう。
コマンドプロンプト
// ディレクトリ移動
$ cd /opt
// composeを入手
$ sudo git clone https://github.com/docker/compose.git
// ディレクトリ移動
$ cd /opt/compose
// ブランチの切り替え
$ sudo git checkout bump-1.23.2
// テキストファイルを編集
$ sudo sed -i -e 's:^VENV=/code/.tox/py36:VENV=/code/.venv; python3 -m venv $VENV:' script/build/linux-entrypoint
// テキストファイルを編集
$ sudo sed -i -e '/requirements-build.txt/ i $VENV/bin/pip install -q -r requirements.txt' script/build/linux-entrypoint
// Dockerイメージの作成(30分程度かかる)
$ sudo docker build -t docker-compose:armhf -f Dockerfile.armhf .
// docker-composeのバイナリ作成
docker run --rm --entrypoint="script/build/linux-entrypoint" -v $(pwd)/dist:/code/dist -v $(pwd)/.git:/code/.git "docker-compose:armhf"
// docker-composeバイナリをbinディレクトリ配下に移動
$ sudo cp dist/docker-compose-Linux-armv7l /usr/local/bin/docker-compose
// rootに所有者を変更
$ sudo chown root:root /usr/local/bin/docker-compose
// パーミッション(実行権限)を付与
$ sudo chmod 0755 /usr/local/bin/docker-compose
// バージョン確認
$ docker-compose --version
docker-compose version 1.23.2, build 1110ad01
7. dockerの動作確認
コマンドプロンプト
// OS再起動(念のため)
$ sudo shutdown -r now
// dockerの実行(ハローワールド)
$ docker run --rm hello-world
8. docker-composeの動作確認
- docker-compose.ymlファイルを作成し、ファイル保存する。
docker-compose.yml
version: "2"
services:
app:
image: hello-world
- docker-composeを実行する。
コマンドライン
// docker-compose.ymlファイルが存在することを事前確認
$ ls
docker-compose.yml
// docker-composeを実行
$ sudo docker-compose up
9. 参考:Dockerコマンド、docker-composeコマンド
10. おわりに
いかがでしたでしょうか?意外と簡単にDocker & docker-composeをはじめることができたのではないかなと思います。
今回の記事が、みなさまの学習の参考になれば幸いです。
2020/02/22 TAKAHIRO NISHIZONO