Where Does the Docker Engine Store Images and Volumes?
Where the Docker Engine stores images, containers, volumes, and build cache on Linux hosts.
Last updated
The Linux Docker Engine keeps everything under /var/lib/docker: image layers, container filesystems, named volumes, networks, and build cache. The CLI only talks to the daemon; this directory is the actual storage.
Desktop installs on Windows and macOS hide the same tree inside their Linux VM, so host paths differ there. On native Linux the path below is canonical. Rootless mode relocates it under ~/.local/share/docker instead.
Where Docker Engine stores this, by platform
/var/lib/docker/
Images, containers, volumes/, build cache. Manage with docker system commands, not rm. Rootless installs use ~/.local/share/docker/. Desktop for Win/Mac hides this inside its VM.
Frequently asked questions
How do I reclaim Docker disk space?
Run docker system df for the breakdown, then docker system prune -a --volumes for a full clear. Unused volumes and dangling build cache are usually the bulk. Never rm -rf /var/lib/docker by hand while dockerd runs.
Where are named volumes versus bind mounts?
Named volumes live in a volumes/ subfolder with one directory per volume; inspect names with docker volume ls. Bind mounts stay wherever you put them on the host. Back up volume dirs with the daemon stopped for consistency.
Notice an outdated path? Let us know.