SoFunction
Updated on 2025-04-09

Docker storage management: volume, binding mount, temporary storage

Docker provides a variety of storage methods for data storage in containers. Depending on the usage scenario, Docker providesVolumesBind MountsandTemporary storage (Tmpfs)etc. Each storage method has different characteristics and usage scenarios, which are suitable for different needs.

In this article, we will dive into three common ways of Docker storage management:VolumesBind MountsandTemporary storage (Tmpfs)

1. Overview of Docker Storage Types

Docker provides the following three main storage methods:

Volumes: Docker recommends persistent storage, suitable for long-term storage.Bind Mounts: Mount the host's file system directory into the container, suitable for scenarios where host files need to be accessed.Temporary storage (Tmpfs): Store temporary files in memory, suitable for temporary data that does not require persistence.

2. Docker volumes (Volumes)

2.1 What is Volumes?

Volumes are the officially recommended persistent data storage method by Docker. The data is stored in the Docker-managed directory. After the container is stopped or deleted, the data in the volume still exists. Volumes do not depend on the host's file system, thus having higher portability and performance.

Characteristics of the volume:

  • Volumes: Docker recommends persistent storage, suitable for long-term storage.
  • Bind Mounts: Mount the host's file system directory into the container, suitable for scenarios where host files need to be accessed.
  • Temporary storage (Tmpfs): Store temporary files in memory, suitable for temporary data that does not require persistence

2.2 Create and use volumes

Command to create a volume and mount it into a container:

docker volume create my-volume
docker run -d -v my-volume:/data --name my-container nginx
  • docker volume create: Create a new volumemy-volume
  • -v my-volume:/data: Mount the volume into the container/dataTable of contents.

If the container is during execution/dataPerform the operation and the data will be saved on the volumemy-volumemiddle.

2.3 Viewing and managing volumes

View local volumes

docker volume ls

View volume details

docker volume inspect my-volume

Delete volume

docker volume rm my-volume

Note: If a container is using the volume, it cannot be deleted.

Advantages of Volume 2.4

  • Persistence: The data in the volume is independent of the container life cycle, and data can be retained after the container is deleted.
  • performance: Compared to binding mounts, volumes perform better in Docker, especially when sharing data across hosts or containers.
  • Easy to manage:Docker provides commands and APIs to manage volumes, simplifying data backup, migration, and recovery.

3. Bind Mounts

3.1 What is Bind Mounts?

Bind mount mounts a specific directory or file on the host directly into the container. This means that data between the container and the host can be directly shared and modified. Unlike volumes, binding mounts directly depend on the host's file system.

Features of binding mounts

  • Direct access to the host file system: The container can directly access any file or directory on the host.
  • Real-time update: The files in the container and the host files are synchronized in real time, and any modifications will be immediately reflected on both sides.
  • Not suitable for cross-host use: The binding mount can only be used on the same host and cannot be shared across hosts.

3.2 Create and use binding mounts

use-vor--mountParameters to mount the host directory into the container.

docker run -d -v /path/on/host:/path/in/container --name my-container nginx

/path/on/host:/path/in/container: Put the host's/path/on/hostThe directory mounted to the container/path/in/containerTable of contents.

3.3 Using the --mount syntax

Although-vParameters can create binding mounts, but it is recommended to use--mount, it has clearer syntax and stronger configuration capabilities.

docker run -d --mount type=bind,source=/path/on/host,target=/path/in/container --name my-container nginx

3.4 Pros and cons of binding mount

advantage

  • High flexibility: Any file or directory on the host can be bound, suitable for shared configuration files or log files, etc.
  • Real-time synchronization: The file systems of the container and host are directly synchronized and take effect immediately after modification.

shortcoming

  • Security risks: The container can access any directory of the host, which poses potential security risks.
  • Not portable: Bind mounts depend on the host's file system and cannot be easily migrated to other hosts.

4. Temporary storage (Tmpfs)

4.1 What is temporary storage (Tmpfs)?

Temporary storage (tmpfs) is the way to store the data of the container in memory. It is suitable for storing temporary data that does not require persistence.tmpfsThe stored content will be lost when the container stops or restarts.

Features of temporary storage

  • Memory storage: The data is stored in the host's memory and does not occupy disk space.
  • Quick read and write: Since the data is stored in memory, the read and write speed is very fast.
  • Temporary data: Suitable for data that does not require persistence, such as temporary cache, session information, etc.

4.2 Using tmpfs

Can be passed--mountParameter usagetmpfsstorage.

docker run -d --mount type=tmpfs,target=/path/in/container --name my-container nginx
  • --mount type=tmpfs: Specify the mount type astmpfs, store data in memory.

4.3 Pros and cons of temporary storage

advantage

  • High-speed storage: The data is stored in memory and has extremely fast reading and writing speed.
  • Save disk space: No disk space is used, suitable for temporary file storage.

shortcoming

  • Data is easily lost: Data will be lost after the container is stopped or restarted.
  • Memory consumption: Data is stored in memory and may occupy a lot of memory, affecting the performance of the host.

5. Summary: Choose the right storage method

Storage method Features Applicable scenarios
Volumes Persistent storage, independent of the host, can be shared between containers Persistently store application data, such as database files, log files, etc.
Bind Mounts Containers interact directly with the host file system and synchronize in real time Scenarios where access to host files or shared configuration files are required
Temporary storage (Tmpfs) Memory storage, quick read and write data, lost after stopping Store temporary data, such as cache, session information, etc.
  • VolumesApplicable to persistent data storage and is the most recommended storage method.
  • Bind MountsSuitable for scenarios where direct interaction with the host is required.
  • Temporary storage (Tmpfs)Suitable for data that requires high performance and temporary storage.

Choosing the right storage method can make your Docker containerized applications more efficient and secure, and meet different needs! 🚀

This is the article about the three ways of Docker storage management: volume, binding mount, and temporary storage. For more related docker volumes, binding mount, and temporary storage, please search for my previous articles or continue browsing the related articles below. I hope everyone will support me in the future!