8.2.1.1 Volume Managed Storage
A focused guide to Volume Managed Storage, connecting core concepts with practical Docker and container operations.
Volume managed storage refers to the fact that Docker itself takes responsibility for where and how a volume's actual data is physically stored, abstracting this detail away from the user in contrast to a bind mount, which directly references a specific, user-chosen location on the host filesystem.
Where Docker Actually Stores Volume Data
Docker manages the physical storage location for a volume internally, typically within its own dedicated data directory, without requiring (or expecting) the user to interact with that location directly.
docker volume inspect mydata --format '{{.Mountpoint}}'
This reveals the actual underlying filesystem path Docker uses to store this volume's data, though direct interaction with this path is not the intended or recommended way to work with the volume's contents.
Why This Abstraction Is Beneficial
By managing storage location internally, Docker can handle implementation details — underlying filesystem choice, specific storage driver behavior — consistently and correctly, without requiring the user to understand or manage these details directly.
docker run -d -v mydata:/app/data myapp:1.0
The volume simply works correctly as mounted, regardless of the specific underlying storage implementation Docker is using.
Interacting With Volume Contents Through Containers, Not Directly
The recommended way to interact with a volume's data is through a container that has it mounted, rather than directly manipulating Docker's internal storage location on the host.
docker run --rm -v mydata:/data alpine ls /data
This is the appropriate, supported way to inspect a volume's contents.
Contrasting With Bind Mounts' Different Approach
A bind mount, by contrast, directly references a specific, user-chosen host path, with no equivalent abstraction — the user is directly responsible for that location's existence and management.
docker run -d -v /home/user/app-data:/app/data myapp:1.0
Why Volume Managed Storage Matters
This abstraction is a key part of what makes named volumes a convenient, portable storage mechanism — the underlying storage details are handled consistently by Docker itself, removing a category of host-filesystem-specific concerns that bind mounts require the user to manage directly.