Docker 29 has changed its default image store for new installs

(docs.docker.com)

2 points | by neitsab 8 hours ago ago

2 comments

  • neitsab 8 hours ago

    Docker 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/.

    • neitsab 8 hours ago

      I noticed the change because I wanted to persist Docker-related data between container instantiations on IncusOS. I couldn't understand why the custom volume I had mounted on /var/lib/docker didn't contain the downloaded images.

      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.