Select Page

How to ensure persistent Docker storage using data volumes

How to ensure persistent Docker storage using data volumes

Docker containers are aimed at creating and managing application environments that can be deployed in the matter of a few seconds. Containers are usually created for temporary purposes, depending on its business application.

When a container’s application purpose is served, it can be deleted and the resources allotted to it can be reused for creating new containers for other purposes, especially when used in development and testing services.

Why do you need persistent Docker storage?

The default Docker storage is not persistent in nature, which means that the data in the container would be lost upon a crash or deletion of the container.

Many online businesses that use Docker infrastructure may require persistent data for their containers, such as in the case of an application that stores data in the database for future use.

To share data among the Docker containers and to ensure that the data is secure and safe even after a container rebuild, you need to configure persistent data storage in your system.

There are some workarounds for ensuring persistent docker storage, such as data volumes, data volume containers or plugins. Today, we’ll discuss how data volumes can be used with Docker containers to store data in a persistent manner.

[ You don’t have to lose your sleep to keep your customers happy. Our Hosting Support Specialists cover your servers and support your customers 24/7 at just $9.99/hour. ]

Using data volumes for persistent Docker storage

In Docker, persistent storage can be achieved with the help of data volumes. Data volume is a directory in the Docker machine, which can store container data.

Once the data volumes are created, they can be shared among containers. The data stored in these data volumes persist even after deleting the container, and so can be used for purposes such as coding.

The default data volume directory is ‘/var/lib/docker/volumes’. This directory would contain the volumes specific to each container and they are identified using volume IDs – 64-bit randomly generated numbers.


persistent docker storage data volume

Docker data volume storage


Create data volumes for docker storage

To use data volumes, the volume has to be created first. To create a data volume, use the command:

docker volume create <data-volume> -o size=100GB

This command will create a data-volume with size 100GB in the host machine.

Once the data volume is created, we can create containers with this data volume associated to them. The data volume name can be given as parameter while creating containers using the Dockerfile or with ‘-v’ flag in ‘docker run’ command:

docker run -d -P --name web -v /data-volume nginx

When a container is created, a data volume would be associated with it in the folder ‘/data-volume’. By specifying the data volume name during container creation, it is possible to share data among containers.

To ensure that data corruption does not occur due to simultaneous access to the data by multiple applications in different Docker containers, care has to be exercised in managing the application ‘writes’.

[ Use your time to build your business. We’ll take care of your customers. Hire Our Hosting Support Specialists at $9.99/hr. ]


Do you spend all day answering technical support queries?

Wish you had more time to focus on your business? Let us help you.

We free up your time by taking care of your customers and servers. Our engineers monitor your servers 24/7, and support your customers over help desk, live chat and phone.


Bobcares provides Outsourced Web Hosting Support and Outsourced Server Management for online businesses. Our services include 24/7 server support, help desk support, live chat support and phone support.

Submit a Comment

Your email address will not be published. Required fields are marked *

Bobcares is a server management company that helps businesses deliver uninterrupted and secure online services. Our engineers manage close to 51,500 servers that include virtualized servers, cloud infrastructure, physical server clusters, and more.