Docker 29 has changed its default image store for new installs
1–10 of 93 posts
Re: Docker 29 has changed its default image store for new installs
#2This means `/var/lib/docker` is no longer "hermetic": images and container snapshots are located in `/var/lib/containerd` now.
More info about the switch: https://www.docker.com/blog/docker-engine-version-29/
To configure this directory, see https://docs.docker.com/engine/storage/containerd/.
Re: Docker 29 has changed its default image store for new installs
#3Docker v29 (released 2025-11) switched to using containerd for its image store for new installs. This means `/var/lib/docker` is no longer "hermetic": images and container snapshots are located in `/var/lib/containerd` now. More info about the switch: https://www.docker.com/blog/docker-engine-version-29/ To configure this directory, see https://docs.docker.com/engine/storage/containerd/ .
To keep both /var/lib/{containerd,docker} in sync, I use a single ZFS dataset ("custom filesystem volume" in Incus parlance) and mount subpaths inside the container:
incus storage volume create local docker-data
incus config device add docker docker disk pool=local source=docker-data/docker path=/var/lib/docker
incus config device add docker containerd disk pool=local source=docker-data/containerd path=/var/lib/containerd
There are other ways to achieve the same of course.Re: Docker 29 has changed its default image store for new installs
#4> The containerd image store uses more disk space than the legacy storage drivers for the same images. This is because containerd stores images in both compressed and uncompressed formats, while the legacy drivers stored only the uncompressed layers.
Why ?
Re: Docker 29 has changed its default image store for new installs
#5Docker already fills up my dev machines yet they decided for this insane solution: > The containerd image store uses more disk space than the legacy storage drivers for the same images. This is because containerd stores images in both compressed and uncompressed formats, while the legacy drivers stored only the uncompressed layers. Why ?
Re: Docker 29 has changed its default image store for new installs
#6Docker already fills up my dev machines yet they decided for this insane solution: > The containerd image store uses more disk space than the legacy storage drivers for the same images. This is because containerd stores images in both compressed and uncompressed formats, while the legacy drivers stored only the uncompressed layers. Why ?
Sounds like a straightforward time-space tradeoff: if you have the compressed layers sitting around when you need them, you can avoid the expense and time of compressing them.
Re: Docker 29 has changed its default image store for new installs
#7Re: Docker 29 has changed its default image store for new installs
#8Why not just use podman at this point?
Re: Docker 29 has changed its default image store for new installs
#9This seems like a really weird decision. If base images are duplicated for every image you have, that will add up quickly.
Re: Docker 29 has changed its default image store for new installs
#10Docker already fills up my dev machines yet they decided for this insane solution: > The containerd image store uses more disk space than the legacy storage drivers for the same images. This is because containerd stores images in both compressed and uncompressed formats, while the legacy drivers stored only the uncompressed layers. Why ?
Sounds like a straightforward time-space tradeoff: if you have the compressed layers sitting around when you need them, you can avoid the expense and time of compressing them.