I'm using Buildroot on a CM4. My intentions are to run Docker/OCI containers on that RPi CM4 board.
I've enabled containerd as well as docker-engine/devicemapper filesystem driver and docker-engine/vfs filesystem driver, as well as docker-cli.
Which one I end up using eventually is a problem I'll tackle in the future, for now I just want to get containers to run.
After the image is built and the CM4 is flashed and is running, I log in onto it, and run containerd.
Once containerd is running I log in onto the CM4 with another terminal and try to run a simple image:
# ctr image pull docker.io/library/hello-world:latest
docker.io/library/hello-world:latest: resolved |++++++++++++++++++++++++++++++++++++++|
index-sha256:aa0cc8055b82dc2509bed2e19b275c8f463506616377219d9642221ab53cf9fe: done |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:432f982638b3aefab73cc58ab28f5c16e96fdb504e8c134fc58dff4bae8bf338: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:7050e35b49f5e348c4809f5eff915842962cb813f32062d3bbdd35c750dd7d01: done |++++++++++++++++++++++++++++++++++++++|
config-sha256:46331d942d6350436f64e614d75725f6de3bb5c63e266e236e04389820a234c4: done |++++++++++++++++++++++++++++++++++++++|
elapsed: 1.0 s total: 0.0 B (0.0 B/s)
unpacking linux/arm64/v8 sha256:aa0cc8055b82dc2509bed2e19b275c8f463506616377219d9642221ab53cf9fe...
done: 47.228768ms
And then I'm trying to run it:
# ctr run docker.io/library/hello-world:latest test
ctr: failed to mount /tmp/containerd-mount524001853: no such device
While running containerd I'm getting a warning:
WARN[2023-01-13T12:17:47.872841054+01:00] failed to load plugin io.containerd.snapshotter.v1.devmapper error="devmapper not configured"
…
WARN[2023-01-13T12:17:47.877784363+01:00] could not use snapshotter devmapper in metadata plugin error="devmapper not configured"
This is where I got stuck.
I don't use snapshotter, so I tended to disregard that problem.
Is there a way to force ephemeral running of images, such that no filesystem support for some sort of overlay fs is required?
Or am I hunting a red herring entirely, and I should first configure devmapper first?
I read conflicting information about cgroup, do I need to compile it in Buildroot, or is it optional?
Additional info:
runc --version:
runc version 1.1.4
spec: 1.0.2-dev
go: go1.19.3
ctr --version:
ctr github.com/containerd/containerd 1.6.8
containerd --version:
containerd github.com/containerd/containerd 1.6.8
cat /proc/version:
Linux version 5.10.110-v8 (polemon@desk) (aarch64-buildroot-linux-gnu-gcc.br_real (Buildroot 2022.11-rc2-dirty) 12.2.0, GNU ld (GNU Binutils) 2.38) #8 SMP PREEMPT Wed Jan 11 16:59:36 CET 2023