初めに
ここに書いたのは、あくまでも2020年11月28日現在の話。Raspberry Pi上のDocker環境は激しく変わる。
Raspberry Pi OSの64bitはまだβ版。しかし64bitしかサポートしないアプリが増えているのでUbuntuを使う。
dockerは公式の最新を使う
ディストリビューションからインストールされるバージョンは大抵古いので、Docker公式のレポジトリを登録して使う。
https://docs.docker.com/engine/install/ubuntu/
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository \
"deb [arch=arm64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
docker-compseを入れる
docker-compseは、公式からARM版バイナリが公開されていません。自力でコンパイル pip3でインストール。
$ sudo apt-get install libffi-dev libssl-dev
$ sudo apt-get install python3 python3-pip python3-dev
$ sudo pip3 install docker-compose
- Python3はデフォルトでインストールされているかも
MySQL
- NG(イメージがダウンロード出来ない)
$ docker pull mysql
- OK
$ docker pull mysql/mysql-server
docker-compose.ymlで image:mysqlと書いてある部分は、mysql/mysql-serverに置き換える(挙動はあまりかわらない)
- 両者の違いは前者はDocker公式(debian base)で、後者がOracle公式(Oracle Linux base)みたい。
phpmyadmin
- 動かなっかった AMD64版を動かそうとしていたみたい。
$ docker run phpmyadmin/phpmyadmin
exec user process caused "exec format error" dockerエラーがでてコケた。
- 動いた
$ docker run arm64v8/phpmyadmin
- 公式イメージが動かなければ https://hub.docker.com/u/arm64v8 を調べると良いかも。
jwilder/nginx-proxy
これも動かない。
Dockerfileを見ると同梱するツールがamd64版をハードコードされていた。一緒に入れているツールのarm64版をコンパイルする必要がありそうなので取りあえずパス。