| 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で検証用環境を作ってインストールしてみます。

2019 03 16 Docker Run Finally

文章にしたらあっさりと短いですが、、、はぁ〜よかった。。 これで、

「これも、ドッカーで、いこか。」
「あれも、まぁ〜、ドッカーにしとって。」

と、もうなんでも、CPUが焼き焦げるまで、ドッカーしちゃるわ、ほんとに。

追記:
RPi0はArm6とArm7のどっちつかずのちょっと中途半端な輩の様です。下位互換があれども不具合があるようです。 DietPiで動かなかったらかなり厳しいと思います。AカップもしくはBカップのパイにするのが良いです。

See Also

🏝 tipping

🌷 sat ⚡️ goozenlab@getalby.com
🌻 bitcoin : bc1qnjhnsxgqah050995dkdveav4y3t3d7uxyme4ud

If you do send a tip, Please email me so that I can say thank you.