Yes. thanks for that. And i agree with the clickOps. i only use Portainer for an overview. and the occasional restart/remove
i did a major change to running everything on proxmox, and got the new storage driver at the same time on all my LXC’s and VM’s using Docker
If i understand things correctly
Docker Root Dir /var/lib/docker/rootfs/overlayfs contains folders for the running image. if i stop a container, the folder for it disappears, but not much changes in /var/lib/containerd
and /var/lib/containerd contains images and uncompressed layers.
So disk usage reported by using ncdu is real. portainer is only reporting single downloaded image size. not all the uncompressed files and layers that containerd has control over.
But “take something with a pinch of salt”
I have removed some large images that i did not relay use on this host.
That saved a lot of space in both folders.
One simple service had an image that was over 5gb. Ruthless of the container maker. (looking at you stirlingPDF)
But i think i also have an orphan dir in /var/lib/containerd
is there any way of figuring out what container has winch folded in /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots?
it contains numbered folders like: 761 774 783 852 861 870 893 902 911 920 93 94 989
1000 101 1019 1036 1067 1083 109
and 771 is the largest by far at 2Gb, but what container is that? how to find?
Small update just after posting this: 771 does not show up when i run mount and if it is orphaned i can not find the container it belongs to. so i guess i need to filter folders to see what container they belong to and see if i find one that does not belong to a container.
I’m considering removing all containers and rebuilding. i already have a script for it, and all data should be safe. I also have a backup of the vm… but still. i have to do it when i have the time to fix it if it breaks 
This is the answer googles ai gave me. winch is a good summary of it:
Containerd typically reports higher real disk usage than legacy drivers because it stores both compressed and uncompressed image layers, often causing disk usage to double. Images, containers, volumes, and build cache consume space, which can be monitored via docker system df or by checking /var/lib/containerd/ or /var/lib/rancher/k3s/agent/containerd/.
Key Reasons for High Disk Usage
- Dual Storage: Containerd stores images in both compressed (received) and uncompressed (unpacked) formats to allow for faster image pulling and pushing.
- Snapshotter Storage: While uncompressed layers are de-duplicated, the extra space used by keeping compressed blobs adds overhead.
- Redundant Images: In some scenarios (e.g., K3s/Kubernetes), identical images might be stored multiple times, wasting significant space.
- Build Cache: Over time, unused build caches can accumulate, taking up substantial storage.
How to Monitor and Reduce Real Disk Usage
- Check Usage: Use
docker system df -v to get a detailed view of space used by images, containers, and volumes.
- Prune Data: Regularly run
docker system prune -a --volumes to remove unused images, containers, and volumes.
- Check
du: Run du -sh /var/lib/containerd or the relevant data directory to see the actual space consumed on disk.
- Clean Up Volumes: Volumes are not automatically removed by prune, so ensure unused volumes are deleted.
- Restart/Reset: For extreme cases in development, restarting the service or performing a prune can free up space.