
Docker: Persistent Storage Using Volumes
What are Docker Volumes? Docker volumes are a mechanism for persisting data independently of the container lifecycle. Since, the data in a container will be deleted once the container is stopped, using Docker volumes ensures the data is stored permenently. Volumes are managed by Docker and stored on the host (mostly under /var/lib/docker/volumes). Most importantly, it allows the data to be stored, retained and shared between container, suriving container restarts and removals. It preferrable to use for stateful applications like databases or file servers where data persistence matters. Creating and Using Volumes Volumes can be created implicitly by Docker when referenced or explicitly using: docker volume create <volume_name> Start a container and mount a volume: docker run -it -v <volume_name>:/path/in/container <image:tag> Volume Content Persistence and Sharing Files written/modified inside the container at the mount point path persist on the volume. When a new container mounts the same volume, it can process the previously stored data. Volumes can be mounted read-write (default) or read-only with :ro option: docker run -it -v <volume_name>:/container/path/:ro <image:tag> Inspecting and Managing Volumes List volumes: docker volume ls Inspect a volume for details like mount point: docker volume inspect <volume_name> Remove a Volume(only when inactive/not being by any containers) docker volume rm <volume_name> Thoughts If you read this posts about Bind Mounts, using Volumes over Bind Mount is a benefit because: ...