Hi Martin,
The 26 GB in /var/lib/containerd is Docker’s image store, and it’s holding a complete copy of the Anthias stack for every release you’ve ever upgraded through. Each generation is roughly 3 GB (viewer + server + redis), so 26 GB is about eight of them.
Why nothing cleaned them up: each Anthias release pins its own immutable image tag, so when you upgrade, the previous release’s images stay tagged and valid rather than becoming dangling. docker system prune -f — which the installer already runs at the end of every upgrade — only reclaims dangling images, so it reclaims exactly 0 bytes of these. I measured this on a Pi 3 here before replying: seeding one superseded release grew /var/lib/containerd from 3.0 GB to 4.4 GB, and docker image prune -f then reported Total reclaimed space: 0B with both images still listed.
(Incidentally, /var/lib/docker being tiny while /var/lib/containerd is huge is expected on Docker 25 and later, which keeps images under containerd. That’s why your du looks different from the older overlay2 threads on here.)
This is fixed as of v2026.09.0 — upgrades now purge superseded images automatically. But you’ll need to free the space first, because the upgrade’s docker pull is exactly what’s failing on a full card.
Over SSH, safe to run with Anthias live — nothing is stopped, and docker rmi needs no free space, so it works at 100% full:
curl -fsSL https://raw.githubusercontent.com/Screenly/Anthias/master/bin/purge_stale_images.sh | bash
If sudo asks for a password, run sudo -v first — the script is piped into bash and can’t prompt. It only removes images from the Anthias repositories that no container references, so anything of your own running alongside Anthias is left alone. It prints one line per image it reclaims, and you should get most of the 26 GB back. Then re-run the installer to land on v2026.10.0, and it’ll stay tidy from there.
If it reclaims much less than you’d expect, something other than stale images is filling the card — most likely a runaway file inside one container layer. This will show it:
sudo find /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots \
-xdev -type f -size +100M -printf '%s %p\n' | sort -rn | head
On a healthy device the only hits are legitimate libraries (libQt6WebEngineCore.so, libLLVM.so). A pile of core.<pid> files or one giant log would mean a different bug — post the output here and we’ll take it from there.