前書き
本記事では、Raspberry Pi3/4(32bit、64bit)のいずれかに対して、Dockerおよびdocker-composeをインストールする方法を紹介します。
Raspberry Piのネットワーク設定が終了している状態を前提とします。
前準備
Dockerはcgroups機能(プロセスが使用するリソースを制限する機能)を使用するため、/boot/cmdline.txtを編集してcgroupsを有効化します。
※編集前
console=serial0,115200 console=tty1 root=PARTUUID=2677d299-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
※編集後(cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1を追加)
console=serial0,115200 console=tty1 root=PARTUUID=2677d299-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
編集が終わった後、再起動するとcgroups機能が有効になります。
Dockerのインストール
まずは、Dockerの依存パッケージをインストールします。
$ sudo apt update
$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
次に、Dockerインストール時に用いる署名鍵を取得します。
(注釈) bash環境で実行してください。fishなどでは変数展開できません。
$ curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
(注釈) $(. /etc/os-release; echo "$ID")の部分は、"debian"です。
aptパッケージマネージャのソースリストに対して、Docker公式リポジトリを追加します。
$ echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list
最後に、Docker CE(Community Edition)をインストールし、必要であればシステム起動時にDockerが自動起動するようにsystemdの設定を変更します。
$ sudo apt update
$ sudo apt install -y --no-install-recommends docker-ce cgroupfs-mount
(注釈) Dockerの有効化と起動
$ sudo systemctl enable docker
$ sudo systemctl start docker
docker-composeのインストール
Docker Composeは、複数のコンテナから構成されるアプリにおいて、コンテナの起動や停止を簡単できるようにするツールです。
公式サイトが配布しているバイナリがARM向けではないため、Python3パッケージマネージャであるpip3でインストールできるVersionを使用します(この対応は、公式サイトにも記載があります)。
そのため、まずはpip3の依存パッケージをインストールします。
$ sudo apt install libffi-dev libssl-dev python3 python3-pip python3-dev
Docker Composeをインストールします。
$ sudo pip3 install docker-compose
私は、Docker Composeインストール中にmicroSDカード容量(16GB)が足りなくなり、エラーとなりました。より容量の大きいmicroSDカードに移行する場合は、以下の記事を参考にしてください。
