| tags:raspberry pi buster categories:server
Docker on RPi3B.arm64.buster
root@iska:~$ docker -v
Docker version 18.06.3-ce, build d7080c1
root@iska:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES
0bd0dc6374b5 grafana/grafana "/run.sh" 19 hours ago Exited (0) pensive_elbakyan
eb83f6879feb portainer/portainer "/portainer" 20 hours ago Exited (2) heuristic_lalande
9aa94e1c81af hello-world "/hello" 21 hours ago Exited (0) awesome_mirzakhani
root@iska:~$
で、あっちに行って、こっちに行ってと、エラーに続くエラー、無駄もいろいろあったかもしれないけれど、よーーーーーやく、動きました。
Job for docker.service failed because a fatal signal was delivered causing the control process to dump core.
See "systemctl status docker.service" and "journalctl -xe" for details.
invoke-rc.d: initscript docker, action "start" failed.
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: activating (start) since Sat 2019-03-02 11:48:14 GMT; 355ms ago
Docs: https://docs.docker.com
Main PID: 1414 (dockerd)
CPU: 158ms
CGroup: /system.slice/docker.service
└─1414 /usr/bin/dockerd -H fd://
Mar 02 11:48:14 pi systemd[1]: Starting Docker Application Container Engine...
dpkg: error processing package docker-ce (--configure):
subprocess installed post-installation script returned error exit status 1
Dockerのインストール方法は本家のサイトで詳しく説明されています。 Get Docker CE for Debian
ラズベリーパイにおいては、今のところはスクリプトを使ってインストールする方法を薦めています。
For Raspbian, installing using the repository is not yet supported. You must instead use the convenience script.
私はお試しdeb.Buster.arm64を使っていますが、多分、今のラズビアンでも動くと思います。Busterも不安定というわけなく動いているので、もう後戻りはしません。 とりあえず検証も含め、インドに行って戻ってくる6月半ばまでは、このまま行ってみようと思います。
もしかしたら、スクリプトのインストールであれば一発で動いているのかもしれませんが、その後のメンテナンスを考えたら、aptからはなかなか出られんしね。(ちなみにArch.arm64でもpacman経由のドッカーはエラーの内容は違ったけれど、動作しませんでした。)
Docker CE for Debian
ドッカーの公式サイトではラズベリアンの人たちは、スクリプトを利用してねと書いておりますが、まぁい〜だろうと、強引に普通のインストール方法で行う。(そもそも、この辺から良くなかったのかも。。)
サイトにも載っていますが、作業の工程は以下です。
$ apt install apt-transport-https \
> ca-certificates \
> curl \
> gnupg2 \
> software-properties-common
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/debian buster stable"
To install a specific version of Docker CE
特定のバージョンをインストールする方法。こういった情報が、公式サイトに載っているということは、向こうさんもいろいろと御存知ということなのかもしれん、、とかって思ったりする。まぁ、でも確り、busterのarm64パッケージもビルドしてくれるのはありがたいことです。
$ sudo apt-get update
$ sudo apt-cache showpkg docker-engine
or
$ apt-cache madison docker-ce
docker-ce | 5:18.09.3~3-0~debian-buster | https://download.docker.com/linux/debian buster/stable arm64 Packages
docker-ce | 5:18.09.2~3-0~debian-buster | https://download.docker.com/linux/debian buster/stable arm64 Packages
docker-ce | 5:18.09.1~3-0~debian-buster | https://download.docker.com/linux/debian buster/stable arm64 Packages
docker-ce | 5:18.09.0~3-0~debian-buster | https://download.docker.com/linux/debian buster/stable arm64 Packages
docker-ce | 18.06.3~ce~3-0~debian | https://download.docker.com/linux/debian buster/stable arm64 Packages
docker-ce | 18.06.2~ce~3-0~debian | https://download.docker.com/linux/debian buster/stable arm64 Packages
docker-ce | 18.06.1~ce~3-0~debian | https://download.docker.com/linux/debian buster/stable arm64 Packages
docker-ce | 18.06.0~ce~3-0~debian | https://download.docker.com/linux/debian buster/stable arm64 Packages
$ apt-cache madison docker-ce-cli
docker-ce-cli | 5:18.09.3~3-0~debian-buster | https://download.docker.com/linux/debian buster/stable arm64 Packages
docker-ce-cli | 5:18.09.2~3-0~debian-buster | https://download.docker.com/linux/debian buster/stable arm64 Packages
docker-ce-cli | 5:18.09.1~3-0~debian-buster | https://download.docker.com/linux/debian buster/stable arm64 Packages
docker-ce-cli | 5:18.09.0~3-0~debian-buster | https://download.docker.com/linux/debian buster/stable arm64 Packages
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING>
こお数日試した中で、唯一ドッカーがすっきり動いたのはDietPiです(かなり優秀なディストリビューションです。)。そのDietPiでは最新のバージョンではなくて、18.06.Xを動かしていたような気がしたので、それに習い18.06系をインストールする。ネット上でも18.09.1はエラーがあって、次からのバージョンではパッチが当たると読んだような気がする、、。 いずれにせよ、ここまでの経過を見ると、一番新しいものは少しリスクがあるように思える。
と言うことで、一つ前のバージョンをインストールします。
$ sudo apt-get install docker-ce=18.06.3~ce~3-0~debian containerd.io
そして、apt upgrade
時にパッケージをアップグレードされてしまうと元も子もないので、アップグレードから除外します。
$ echo docker-ce hold | sudo dpkg --set-selections
晴れて、問題もなくなり、解除する時は。
$ echo docker-ce install | sudo dpkg --set-selections
にて行います。(追記:3/19)
で、アプリを立ち上げます、、、粘り勝ち。。新しいバージョンは6月なかばにタイに戻ったら、別のマイクロSDで検証用環境を作ってインストールしてみます。
文章にしたらあっさりと短いですが、、、はぁ〜よかった。。 これで、
「これも、ドッカーで、いこか。」
「あれも、まぁ〜、ドッカーにしとって。」
と、もうなんでも、CPUが焼き焦げるまで、ドッカーしちゃるわ、ほんとに。
追記:
RPi0はArm6とArm7のどっちつかずのちょっと中途半端な輩の様です。下位互換があれども不具合があるようです。
DietPiで動かなかったらかなり厳しいと思います。AカップもしくはBカップのパイにするのが良いです。