I'm having trouble understanding Docker, mainly because I've been using it with OpenMediaVault to run Jellyfin on my NAS. Until recently, everything was working smoothly, but now I'm facing issues when I try to pull images from the server. I'm getting errors like 'failed to extract layer' and 'operation not permitted' when trying to run even the hello-world container.
I reinstalled Docker thinking it might help, but now I'm getting an additional error stating that it can't mount a certain overlay filesystem. I'm running Debian Bookworm on a budget NAS, so I'm unsure if that's affecting things.
I also tried downgrading the containerd version based on advice from another post, but that version wasn't found, which makes me wonder if my fresh Docker install is causing issues. What should I do to troubleshoot and fix this?
1 Answer
It seems like you're encountering a known issue with containerd and overlayfs, especially on Debian Bookworm. The errors you're seeing suggest that Docker is trying to use a storage driver that's not fully supported by your NAS kernel.
Here are some steps that usually help:
1. Stop Docker and containerd, then clear the broken snapshots:
```
sudo systemctl stop docker
sudo systemctl stop containerd
sudo rm -rf /var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/*
sudo systemctl start containerd
sudo systemctl start docker
```
2. Make sure you're using Docker's official repository for installation. If you run `apt cache madison containerd.io` and don't see results, you might need to re-add the Docker repo.
3. If your NAS uses btrfs, consider switching to `fuse-overlayfs` as the storage driver. You can achieve that by installing it and configuring Docker:
```
sudo apt install fuse-overlayfs
sudo mkdir -p /etc/docker
echo '{ "storage-driver": "fuse-overlayfs" }' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker
```
Once you get everything set up, try running `docker info | grep -i storage` to check if all systems are a go. You're not alone in this—many folks run into similar issues, but they can usually be fixed by adjusting the storage driver or containerd version.
Thanks for the tip about `fuse-overlayfs`! I was about to give up on my setup, but this idea made me rethink everything.
Glad to hear it worked for you! Upgrading to Trixie is often a good move when solutions seem out of reach with older releases.

Just to confirm, will a new snapshot be generated after clearing those out? I don't want to end up with a system that's failing for a different reason after deleting what Docker needs.