Problems installing Docker on a DragonBoard 410c (arm64) running Debian Bullseye

Hi All,

I have tried several times to install Docker on a DragonBoard 410c (arm64) running Debian Bullseye using the procedure described on Install Docker Engine on Debian | Docker Documentation. I did a full purge and removal after each try but it fails to launch the docker service at the end of installing the docker-ce package.

Here is what I see each time:

linaro@DragonBoard:~$ sudo apt-get install docker-ce docker-ce-cli containerd.io
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
The following additional packages will be installed:
docker-ce-rootless-extras libslirp0 slirp4netns
Suggested packages:
cgroupfs-mount | cgroup-lite

***** Excess output snipped *******

Setting up docker-ce (5:20.10.7~3-0~debian-bullseye) …
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.
Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.
Job for docker.service failed because the control process exited with error code.
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 (auto-restart) (Result: exit-code) since Sat 2021-07-03 19:24:06 PDT; 62ms ago
TriggeredBy: ● docker.socket
Docs: …
Process: 3436 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 3436 (code=exited, status=1/FAILURE)
CPU: 1.139s

Jul 03 19:24:06 DragonBoard systemd[1]: Failed to start Docker Application Container Engine.
dpkg: error processing package docker-ce (–configure):
installed docker-ce package post-installation script subprocess returned error exit status 1
Processing triggers for man-db (2.9.4-2) …
Processing triggers for libc-bin (2.31-12) …
Errors were encountered while processing:
docker-ce
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)
linaro@DragonBoard:~$ journalctl -xe
Jul 03 19:24:18 DragonBoard dockerd[3684]: failed to start daemon: Error initializing network controller: error obtaining controller instance: unable to add return rule in DOCKER-I>
Jul 03 19:24:18 DragonBoard dockerd[3684]: (exit status 4))
Jul 03 19:24:18 DragonBoard systemd[1]: docker.service: Failed with result ‘exit-code’.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: …
░░
░░ The unit docker.service has entered the ‘failed’ state with result ‘exit-code’.
Jul 03 19:24:18 DragonBoard systemd[1]: Failed to start Docker Application Container Engine.
░░ Subject: A start job for unit docker.service has failed
░░ Defined-By: systemd
░░ Support: …
░░
░░ A start job for unit docker.service has finished with a failure.
░░
░░ The job identifier is 3125 and the job result is failed.
Jul 03 19:24:20 DragonBoard systemd[1]: docker.service: Start request repeated too quickly.
Jul 03 19:24:20 DragonBoard systemd[1]: docker.service: Failed with result ‘exit-code’.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: …
░░
░░ The unit docker.service has entered the ‘failed’ state with result ‘exit-code’.
Jul 03 19:24:20 DragonBoard systemd[1]: Failed to start Docker Application Container Engine.
░░ Subject: A start job for unit docker.service has failed
░░ Defined-By: systemd
░░ Support: …
░░
░░ A start job for unit docker.service has finished with a failure.
░░
░░ The job identifier is 3189 and the job result is failed.
Jul 03 19:24:20 DragonBoard systemd[1]: docker.socket: Failed with result ‘service-start-limit-hit’.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: …
░░
░░ The unit docker.socket has entered the ‘failed’ state with result ‘service-start-limit-hit’.
linaro@DragonBoard:~$ systemctl status docker.service
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2021-07-03 19:24:20 PDT; 1min 28s ago
TriggeredBy: ● docker.socket
Docs: …
Process: 3684 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 3684 (code=exited, status=1/FAILURE)
CPU: 1.119s

Jul 03 19:24:20 DragonBoard systemd[1]: docker.service: Start request repeated too quickly.
Jul 03 19:24:20 DragonBoard systemd[1]: docker.service: Failed with result ‘exit-code’.
Jul 03 19:24:20 DragonBoard systemd[1]: Failed to start Docker Application Container Engine.
linaro@DragonBoard:~$

********* More info for the OS and CPU *********

linaro@DragonBoard:~$ cat /etc/os-release
PRETTY_NAME=“Debian GNU/Linux 11 (bullseye)”
NAME=“Debian GNU/Linux”
VERSION_ID=“11”
VERSION=“11 (bullseye)”
VERSION_CODENAME=bullseye
ID=debian

linaro@DragonBoard:~$ lscpu
Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: ARM
Model: 0
Model name: Cortex-A53
Stepping: r0p0
CPU max MHz: 998.4000
CPU min MHz: 200.0000
BogoMIPS: 38.40
NUMA node0 CPU(s): 0-3
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Spec store bypass: Not affected
Vulnerability Spectre v1: Mitigation; __user pointer sanitization
Vulnerability Spectre v2: Not affected
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected
Flags: fp asimd evtstrm crc32 cpuid
linaro@DragonBoard:~$

********** Log messages ***********

linaro@DragonBoard:~$ journalctl -fu docker
– Journal begins at Wed 2021-02-03 08:11:40 PST. –
Jul 03 19:24:17 DragonBoard dockerd[3684]: time=“2021-07-03T19:24:17.330402042-07:00” level=info msg="[graphdriver] using prior storage driver: overlay2"
Jul 03 19:24:17 DragonBoard dockerd[3684]: time=“2021-07-03T19:24:17.356110557-07:00” level=info msg=“Loading containers: start.”
Jul 03 19:24:18 DragonBoard dockerd[3684]: time=“2021-07-03T19:24:18.012780982-07:00” level=info msg=“stopping event stream following graceful shutdown” error="" module=libcontainerd namespace=moby
Jul 03 19:24:18 DragonBoard dockerd[3684]: failed to start daemon: Error initializing network controller: error obtaining controller instance: unable to add return rule in DOCKER-ISOLATION-STAGE-1 chain: (iptables failed: iptables --wait -A DOCKER-ISOLATION-STAGE-1 -j RETURN: iptables v1.8.7 (nf_tables): RULE_APPEND failed (No such file or directory): rule in chain DOCKER-ISOLATION-STAGE-1
Jul 03 19:24:18 DragonBoard dockerd[3684]: (exit status 4))
Jul 03 19:24:18 DragonBoard systemd[1]: docker.service: Failed with result ‘exit-code’.
Jul 03 19:24:18 DragonBoard systemd[1]: Failed to start Docker Application Container Engine.
Jul 03 19:24:20 DragonBoard systemd[1]: docker.service: Start request repeated too quickly.
Jul 03 19:24:20 DragonBoard systemd[1]: docker.service: Failed with result ‘exit-code’.
Jul 03 19:24:20 DragonBoard systemd[1]: Failed to start Docker Application Container Engine.

Please let me know what I might be missing.

Please let me know what else I could try.

Thanks.

Hi All,

I fixed the iptables issue and got Docker to install and almost run using this post:

However, I am now stuck here:

linaro@DragonBoard : ~ $ sudo docker version

Client: Docker Engine - Community

Version: 20.10.7

API version: 1.41

Go version: go1.13.15

Git commit: f0df350

Built: Wed Jun 2 11:57:51 2021

OS/Arch: linux/arm64

Context: default

Experimental: true

Server: Docker Engine - Community

Engine:

Version: 20.10.7

API version: 1.41 (minimum version 1.12)

Go version: go1.13.15

Git commit: b0f5bc3

Built: Wed Jun 2 11:55:56 2021

OS/Arch: linux/arm64

Experimental: false

containerd:

Version: 1.4.6

GitCommit: d71fcd7d8303cbf684402823e425e9dd2e99285d

runc:

Version: 1.0.0-rc95

GitCommit: b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7

docker-init:

Version: 0.19.0

GitCommit: de40ad0

linaro@DragonBoard : ~ $ sudo docker run hello-world

Unable to find image ‘hello-world:latest’ locally

latest: Pulling from library/hello-world

256ab8fe8778: Pull complete

Digest: sha256:9f6ad537c5132bcce57f7a0a20e317228d382c3cd61edae14650eec68b2b345c

Status: Downloaded newer image for hello-world:latest

docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: process_linux.go:508: setting cgroup config for procHooks process caused: load program: function not implemented: unknown.

ERRO [0010] error waiting for container: context canceled

Suggestions???

Check if all preconditons required to run docker are met:

curl -s https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh | bash

Also make sure to use image tags that actualy support your cpu architecture.

Docker info returned aarch64as architecture. Docker supports armhf and arm64. I have no idea whether aarch64 is a armhf or arm64 architecture … this might be no problem at all … or a showstopper.