2 pointsby neitsab5 hours ago1 comment
  • neitsab5 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/.

    • neitsab5 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.