34
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Raspberry Piにdockerとdocker-composeを入れてみた

Posted at

前回はラズパイへのOSの書き込みを行いました。
今回の記事では、Raspberry Piへのdockerとdocker-composeの構築について書きます。

環境

  • Raspberry Pi 3 Model B+
  • Raspbian 9.11(stretch)
  • Kernel 4.19.66-v7+
$ uname -a
# Linux raspberrypi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux
$ lsb_release -a                 
# No LSB modules are available.
# Distributor ID: Raspbian
# Description:    Raspbian GNU/Linux 9.11 (stretch)
# Release:        9.11
# Codename:       stretch

dockerのインストール

まずdockerのインストールを行います。
dockerの公式ページを参考にインストールしていきます。
最初はaptで入れようとしましたが、うまくいきませんでした。

Raspbianではスクリプトを使用したインストールを利用するのが良さそうです。
下記コマンドで簡単にインストールできました。

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

バージョンが表示されればインストール成功です。

$ docker --version
# Docker version 19.03.5, build 633a0ea

次にユーザー権限の設定をしておきましょう。
これを行わないと後のdocker-composeのインストールでpermission deniedします。

$ sudo usermod -aG docker YOUR-USER

また、ラズパイの起動時にdockerが自動起動するように設定します。
設定完了したら再起動しておきましょう。

$ sudo systemctl enable docker
$ sudo reboot

docker-composeのインストール

次にdocker-composeのインストールを行います。
docker-composeのバージョン1.24.1までは公式サイトにラズパイ用のバイナリがなかったため、エラーと格闘しながらインストールしている記事が多々ありました。
しかし、1.25.0以降からマルチプラットフォームのビルド用のスクリプトを使用することで簡単にラズパイへのdocker-composeのインストールができるようになりました。
今回インストールするバージョンは1.25.3です。

まず、githubからクローンします。
最新バージョンは1.25.3なので、ブランチをチェックアウトしておきます。(2020/1/29現在)

$ git clone https://github.com/docker/compose.git
$ cd compose
$ git checkout 1.25.3

次にビルド用スクリプトを用いてビルドします。
時間がかかるので気長に待ちましょう。
(途中で本当に動いてるのか不安になりましたが、一晩放置したら終了してました。よかった、、、)

$ ./script/build/linux

ビルドに成功していれば、distディレクトリが作成され、その中にバイナリが生成されています。
実行してバージョンを確認してみましょう。

$ cd dist
$ ./docker-compose-Linux-armv7l version
# docker-compose version 1.25.3, build d4d1b42b
# docker-py version: 4.1.0
# CPython version: 3.7.5
# OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

生成されたバイナリの名前は、ビルドした環境に合わせたものになるようです。
今回の環境ではdocker-compose-Linux-armv7lとなっていました。

ちなみに、依存関係は以下のようになっています。

$ ldd docker-compose-Linux-armv7l
# linux-vdso.so.1 (0x7ec31000)
# /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76ee6000)
# libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x76ebf000)
# libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x76e98000)
# libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76d59000)
# /lib/ld-linux-armhf.so.3 (0x76f23000)

このままではdocker-composeのコマンドが使えないため、バイナリをbinにコピーしましょう。

$ docker-compose version
# bash: docker-compose: command not found
$ sudo cp docker-compose-Linux-armv7l /usr/local/bin/docker-compose
$ sudo chown root:root /usr/local/bin/docker-compose
$ sudo chmod 755 /usr/local/bin/docker-compose

これでdocker-composeコマンドが使用できるようになりました。

$ docker-compose version
# docker-compose version 1.25.3, build d4d1b42b
# docker-py version: 4.1.0
# CPython version: 3.7.5
# OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

今回はここまでです!

参考

34
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
36

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?