Support for Ubuntu 21.10 Impish arm64 (on raspberry-pi kernels)

jdamato-mitre created this issue on 2021-10-26 · The issue is replied 6 times

Docker Installs on Ubuntu 21.10 aarch64 using apt repository, but is not supported. I am using a raspberry Pi 4 with Ubuntu Server. Hello World container does not run.

  • This is a bug report
  • This is a feature request
  • I searched existing issues before opening this one

Expected behavior

Hello World

Actual behavior

[email protected]:~$ docker run hello-world
docker: Error response from daemon: failed to create endpoint blissful_nightingale on network bridge: failed to add the host (vethdb6cfb4) <=> sandbox (vethdcfc3f1) pair interfaces: operation not supported.
ERRO[0000] error waiting for container: context canceled

Steps to reproduce the behavior

Install Ubuntu Server 21.10 64 bit on raspberry Pi. Follow install instructions using Docker repositories (https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository)

Output of docker version:

Docker version 20.10.10, build b485636

Output of docker info:

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.6.3-docker)

Server:
 Containers: 8
  Running: 0
  Paused: 0
  Stopped: 8
 Images: 1
 Server Version: 20.10.10
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 5b46e404f6b9f661a205e28d59c982d3634148f8
 runc version: v1.0.2-0-g52b36a2
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.13.0-1008-raspi
 Operating System: Ubuntu 21.10
 OSType: linux
 Architecture: aarch64
 CPUs: 4
 Total Memory: 3.702GiB
 Name: ubuntu
 ID: P5MG:34JO:CGPY:GV3R:DOLH:BTQQ:VUT6:DQX6:WSYK:7KR4:I7CS:SURL
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.)

jtursich wrote this answer on 2021-10-26

I have been struggling with this issue for a while now and just today found the solution that works for me.

sudo apt install linux-modules-extra-raspi

According to this site: https://www.mail-archive.com/[email protected]/msg5968593.html
The vent module was removed from the RPi version of Ubuntu Impish and put into a separate module extras installation. Not sure why that was, but installing this fixed my identical issue.

jtursich wrote this answer on 2021-10-26

If it solves your issue and anyone else who sees this on the RPis, I would like to see Docker-CE add it as an official dependent package to the installation on ubuntu impish arm64 installs.

thaJeztah wrote this answer on 2021-10-26

Thanks for your report, and thank you so much for that link, @jtursich !

Hmm.. so (from msg5968790); the veth kernel module was removed from the kernel, but only on the Raspberry-Pi versions of the Ubuntu kernel.

That's.. hm... ugly 😞 and also explains why we didn't catch this in our automated tests for Ubuntu on arm64 (as they do not run on a raspberry pi).

Not sure how we can solve this in our packaging. Readon that e-mail thread a bit more, they seem to confirm that (see msg596886);

Why has the docker.io package not added a dependency on the modules-extra
package? It clearly does not work without this package on raspi.
While it's possible to add per-architecture dependencies to debs (e.g.
Depends: linux-modules-extra-raspi[armhf arm64]), that's not specific
enough for this case. It'd be incorrect for Docker operating on an AWS
arm64 instance, for example.

The problem is indeed that (AFAIK) there's no way to describe this dependency granular enough in the deb packages to make it a "conditional" requirement only for this specific flavor of their kernel. I don't even think a "dummy" linux-modules-extra-raspi package that would be empty "on other kernels" would be possible (but perhaps there is with some magic checks at install time of the package?); in either case, that's likely something that only Ubuntu / Canonical is able to fix.

I think the only option (currently) is to;

  • document this specific case as a pre-condition for Ubuntu running on raspberry pi
  • perhaps we can detect this case in the install script at get.docker.com, which is maintained in https://github.com/docker/docker-install - suggestions / contributions welcome! I don't have a raspberry Pi myself to test on, so if someone does and is interested..
thaJeztah wrote this answer on 2021-10-26

Also, to confirm; the installation proceeds "successfully", but after installation, docker fails with an error message similar to what's mentioned in https://www.mail-archive.com/[email protected]/msg5969141.html, correct?

$ sudo docker run --rm hello-world
docker: Error response from daemon: failed to create endpoint pensive_greider
on network bridge: failed to add the host (veth2102512) <=> sandbox
(veth4fb66df) pair interfaces: operation not supported.

Perhaps it's useful to mention that specific error in the release notes and/or install docs as well.

thaJeztah wrote this answer on 2021-10-26

Let me also mention this part of msg5968790;

Incidentally, a similar split exists in a couple of other places (linux-modules-extra-aws, linux-modules-extra-oracle)

FYI, @samuelkarp - in case you're hitting something like this with your packages.

ngeorger wrote this answer on 2021-11-14

Hi, maybe it's useful, but I've just found a fix/workaround for ARM64 on RPI 4 8GB

image

Source: https://www.mail-archive.com/[email protected]/msg5968749.html

Regards

More Details About Repo
Owner Name docker
Repo Name for-linux
Full Name docker/for-linux
Language
Created Date 2017-05-15
Updated Date 2021-11-03
Star Count 631
Watcher Count 167
Fork Count 98
Issue Count 656

YOU MAY BE INTERESTED

Issue Title State Comments Created Date Updated Date Closed Date
[ERROR] Dead image in v1.1.1 monitor.md closed 1 2021-09-28 2021-11-12 2021-09-28
Feature Request: Max Depth for Recursive Brute-forcing open 1 2021-05-29 2021-10-25 -
Unlock N2 Hardware (Verified) closed 1 2021-10-21 2021-11-24 2021-10-23
bazel branch coverage closed 1 2021-08-30 2021-11-24 2021-08-30
Standard image doesn't support secrets open 1 2021-10-14 2021-11-07 -
Error in Android 12 open 0 2021-09-02 2021-11-19 -
unrpyc.py: error: too few arguments closed 6 2021-05-13 2021-11-12 2021-05-15
Styling in React (CSS modules vs inline styles solutions) open 4 2016-11-16 2021-11-03 -
Error warnings undeclared routine: 'connect' closed 1 2021-03-15 2021-11-18 2021-03-16
Eavesdrop is deprecated open 0 2021-08-01 2021-11-20 -