Table of Contents
Mounting a Volume When Running a Container
Types of Volumes You Can Use
Some Gotchas and Tips
Home Operation and Maintenance Docker How do you create a Docker volume?

How do you create a Docker volume?

Jun 28, 2025 am 12:51 AM
docker volume

A common way to create a Docker volume is to use the docker volume create command and specify the volume name. The steps include: 1. Create a named volume using docker volume create my-volume; 2. Mount the volume to the container through docker run -v my-volume:/path/in/container; 3. Verify the volume using docker volume ls and clean useless volumes with docker volume prune. In addition, anonymous volume or binding mount can be selected. The former automatically generates an ID by Docker, and the latter maps the host directory directly to the container. Note that the volume is only valid locally, and external storage schemes are required across nodes. During testing, you can use the Alpine container to check the volume content.

Creating a Docker volume is straightforward, and it's one of the most common ways to persist data when working with containers. The main idea is to set up a directory that exists outside the container's filesystem so data survives even after the container stops or gets removed.

Basic Command: docker volume create

The simplest way to create a Docker volume is by using the docker volume create command. You just need to give your volume a name:

 docker volume create my-volume

That's it — you now have a named volume called my-volume . This volume can be mounted into one or more containers later.

You won't see much output unless something goes wrong, but you can verify the volume was created with:

 docker volume ls

This lists all volumes currently available on your system.

Mounting a Volume When Running a Container

Creating the volume is only half the job — you'll want to use it in a container. To do that, use the -v flag when running a container:

 docker run -d \
  --name my-container \
  -v my-volume:/path/in/container \
  my-image

Here:

  • -v my-volume:/path/in/container tells Docker to mount the volume my-volume to a specific path inside the container.
  • /path/in/container depends on what your app expects — for example, if you're running a web server, this might be /usr/share/nginx/html .

Once mounted, any data written to that directory inside the container will be stored in the volume and preserved across container restarts or replacements.

Types of Volumes You Can Use

Docker supports a few types of volumes, and it's helpful to know which one fits your use case:

  • Named volumes – like we used earlier ( my-volume ). These are managed by Docker and are great for databases, config files, etc.
  • Anonymous volumes – when you don't specify a name, Docker gives it a random ID. Useful for temporary storage.
  • Bind mounts – instead of letting Docker manage the storage, you map a specific host directory directly into the container (eg, -v /your/host/dir:/container/path ).

If you're not sure which to pick:

  • Use named volumes for most services where persistence matters.
  • Use bind mounts when you need direct access to your host's files, like during development.

Some Gotchas and Tips

There are a few small things that often trip people up:

  • If you try to mount a volume that doesn't exist when running a container, Docker will automatically create an anonymous volume — not always what you want.
  • Volumes are local to the Docker host. If you're using Docker Swarm or Kubernetes, you'll need external storage solutions for multi-node setups.
  • Cleaning up unused volumes is easy with:
     docker volume prune

Also, if you're testing and want to make sure your volume works, you can spin up a quick Alpine container to inspect its contents:

 docker run -it --rm -v my-volume:/test alpine sh
ls /test

That should show you what's actually inside the volume.

Basically that's it.

The above is the detailed content of How do you create a Docker volume?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

.NET Core Quick Start Tutorial 1. The beginning: Talking about .NET Core .NET Core Quick Start Tutorial 1. The beginning: Talking about .NET Core May 07, 2025 pm 04:54 PM

1. The Origin of .NETCore When talking about .NETCore, we must not mention its predecessor .NET. Java was in the limelight at that time, and Microsoft also favored Java. The Java virtual machine on the Windows platform was developed by Microsoft based on JVM standards. It is said to be the best performance Java virtual machine at that time. However, Microsoft has its own little abacus, trying to bundle Java with the Windows platform and add some Windows-specific features. Sun's dissatisfaction with this led to a breakdown of the relationship between the two parties, and Microsoft then launched .NET. .NET has borrowed many features of Java since its inception and gradually surpassed Java in language features and form development. Java in version 1.6

Docker on Linux: Containerization for Linux Systems Docker on Linux: Containerization for Linux Systems Apr 22, 2025 am 12:03 AM

Docker is important on Linux because Linux is its native platform that provides rich tools and community support. 1. Install Docker: Use sudoapt-getupdate and sudoapt-getinstalldocker-cedocker-ce-clicotainerd.io. 2. Create and manage containers: Use dockerrun commands, such as dockerrun-d--namemynginx-p80:80nginx. 3. Write Dockerfile: Optimize the image size and use multi-stage construction. 4. Optimization and debugging: Use dockerlogs and dockerex

Docker vs. Kubernetes: Key Differences and Synergies Docker vs. Kubernetes: Key Differences and Synergies May 01, 2025 am 12:09 AM

Docker and Kubernetes are leaders in containerization and orchestration. Docker focuses on container lifecycle management and is suitable for small projects; Kubernetes is good at container orchestration and is suitable for large-scale production environments. The combination of the two can improve development and deployment efficiency.

How to develop a complete Python Web application? How to develop a complete Python Web application? May 23, 2025 pm 10:39 PM

To develop a complete Python Web application, follow these steps: 1. Choose the appropriate framework, such as Django or Flask. 2. Integrate databases and use ORMs such as SQLAlchemy. 3. Design the front-end and use Vue or React. 4. Perform the test, use pytest or unittest. 5. Deploy applications, use Docker and platforms such as Heroku or AWS. Through these steps, powerful and efficient web applications can be built.

What is cross-compilation in C? What is cross-compilation in C? Apr 28, 2025 pm 08:21 PM

Cross-compilation in C refers to compiling an executable file or library that can run on another platform on one platform. 1) Cross-compilation requires the use of a special cross-compiler, such as GCC or Clang variants. 2) Setting up a cross-compilation environment can use Docker to manage toolchains to improve repeatability and portability. 3) When cross-compiling, pay attention to code optimization options, such as -O2, -O3 or -Os, to balance performance and file size.

How to view process information inside Docker container How to view process information inside Docker container May 19, 2025 pm 09:06 PM

There are three ways to view the process information inside the Docker container: 1. Use the dockertop command to list all processes in the container and display PID, user, command and other information; 2. Use dockerexec to enter the container, and then use the ps or top command to view detailed process information; 3. Use the dockerstats command to display the usage of container resources in real time, and combine dockertop to fully understand the performance of the container.

How do containerization technologies (like Docker) affect the importance of Java's platform independence? How do containerization technologies (like Docker) affect the importance of Java's platform independence? Apr 22, 2025 pm 06:49 PM

Containerization technologies such as Docker enhance rather than replace Java's platform independence. 1) Ensure consistency across environments, 2) Manage dependencies, including specific JVM versions, 3) Simplify the deployment process to make Java applications more adaptable and manageable.

Why Use Docker? Benefits and Advantages Explained Why Use Docker? Benefits and Advantages Explained Apr 25, 2025 am 12:05 AM

The reason for using Docker is that it provides an efficient, portable and consistent environment to package, distribute, and run applications. 1) Docker is a containerized platform that allows developers to package applications and their dependencies into lightweight, portable containers. 2) It is based on Linux container technology and joint file system to ensure fast startup and efficient operation. 3) Docker supports multi-stage construction, optimizes image size and deployment speed. 4) Using Docker can simplify development and deployment processes, improve efficiency and ensure consistency across environments.

See all articles