前回に引き続いてraspberry piにdockerを導入したのでメモしておく。
なぜDockerを使うのか
localのmacでもremoteのRaspbianでも同じ環境を、一つのDockerfileさえあれば動かせるような便利なものとDockerを思っていた。が、そうではなかった。そもそもとして、Dockerはlinux環境でのみ動くものらしく、Docker for mac ではHyperKitと言うlinuxの仮想環境が立ち上がっているらしい。これ自体はlocalとremoteで異なるDockerfileを書くのに大きな違いにはならなさそうである。しかし、Raspberry PiはCPUがarm製のものらしく、その辺りも考慮してDockerfileは書かないといけないようだ?
とはいえ、既に先人たちが用意した環境をimageを持ってくるだけで使えることには相当の恩恵があると言うことを信じてDockerを使うことにする。
DockerとDocker-Composeの導入
Docker ComposeのインストールにはDocker公式レポジトリからdocker-composeのバイナリを作成するのが正しい方法のようである。ところが、こちらのサイトによるとpipコマンドでインストールができるようである。pythonを生でraspberry piに導入するのも好ましくない気がするが(要出典)、今回は簡単にこの方法にしたがって作成を行った。
Dockerのインストール
# Install some required packages first
$ sudo apt update
$ sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
# Get the Docker signing key for packages
$curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
# Add the Docker official repos
$ echo "deb [arch=armhf] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list
# Install Docker
# The aufs package, part of the "recommended" packages, won't install on Buster just yet, because of missing pre-compiled kernel modules.
# We can work around that issue by using "--no-install-recommends"
$ sudo apt update
$ sudo apt install -y --no-install-recommends \
docker-ce \
cgroupfs-mount
デーモンの起動
sudo systemctl enable docker
sudo systemctl start docker
docker-composeのインストール
# Install required packages
$ sudo apt update
$ sudo apt install -y python python-pip libffi-dev python-backports.ssl-match-hostname
# Install Docker Compose from pip
# This might take a while
$ sudo pip install docker-compose
$ sudo apt-get -y install python3-pip
$ pip3 install docker-compose
以上でdocker、docker-composeコマンドが使えるようになっているはず。