Introduction to container data volumes in Docker

Introduction to container data volumes in Docker

Docker container data volume

If the data is all in the container, then the data will be lost when we delete the container, so we hope that the data can be persistent.
For example, in a MySQL container, we hope that the data can be stored locally so that the data will not be lost when the MySQL container is deleted.
There can be a data sharing technology between containers. The data generated in the Docker container can be synchronized to the local computer. This is the volume technology. That is the data mounting technology, which mounts the directory in our container onto Linux.

insert image description here
After mounting, the operations we perform in the container will be synchronized to the Linux host.

Using Data Volumes

Method 1: Mount directly using command -v

docker run -it -v host directory: container directory#test[root@sumarua home]# docker run -it -v /home/ceshi:/home centos /bin/bash

# After starting, we can check it through docker inspect container id] 

insert image description here

Example

MySQL data persistence

[root@sumarua home]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=666666 --name mysql mysql5.7

Named and anonymous mounts

#Anonymous mount -v container path docker run -d -p --name nginx01 -v /etc/nginx nginx
#View all volumes docker volume ls

insert image description here

# Named mount# Through -v volume name: path in container docker run -d -p --name nginx02 -v juming-nginx:/etc/nginx nginx
#View docker volume ls 

insert image description here

We can check the specific location where the volume is mounted

docker volume inspect [volume name]

insert image description here

All volumes in Docker containers are in /var/lib/docker/volumes/xxxx/_data if no directory is specified.
By mounting with a name we can easily find the volume.
How to determine whether it is a named mount, an anonymous mount, or a specified path mount

-v path in container #anonymous mount -v volume name: path in container #named mount -v /host path: path in container #specified path mount

expand:

# Change the read and write permissions through -v container path: ro rw ro readonly #read-only rw readwrite #readable and writable #Readable and writable by default #Once the container permissions are set, the container will limit the content we mount #ro This path can only be operated through the host machine, and cannot be operated inside the container.

Method 2: Dockerfile

Dockerfile is a build file and command script used to build a docker image.
This script can be used to generate images. The images are layered, and the scripts are commands one by one, and each command is a layer.

# Create a dockerfile file. The name can be random. Dockerfile is recommended.
# Content command (uppercase) parameter in the file FROM centos
VOLUME ["volume01","volume02"]
CMD echo "----end----"
CMD /bin/bash
# Each command here is a layer of the image

Data volume container

--volumes-from

# Usage [root@sumarua]#docker run -it --name docker02 --volumes-from docker01 sumarua/centos

Realize data synchronization and data sharing between containers

insert image description here

Deleting files from a data volume container does not affect data access in other containers mounted on this container. It is a copy concept and a backup copy mechanism.

insert image description here

The configuration information is transferred between containers. The life cycle of the data volume container lasts until no container is used.
However, once persisted locally, the local data will not be deleted.

Summarize

This is the end of this article about container data volumes in Docker. For more relevant Docker data volumes, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Two ways to manage volumes in Docker
  • Docker volume deletion operation
  • Docker volumes file mapping method
  • How to implement Docker volume mounting
  • Docker Data Storage Volumes Detailed Explanation
  • Docker volume usage details and examples
  • Docker writes data to the data volume

<<:  40 web page designs with super large fonts

>>:  uni-app WeChat applet authorization login implementation steps

Recommend

Installation of CUDA10.0 and problems in Ubuntu

The correspondence between tensorflow version and...

Idea deployment tomcat service implementation process diagram

First configure the project artifacts Configuring...

How to reset MySQL root password under Windows

Today I found that WordPress could not connect to...

How to install mongodb 4.2 using yum on centos8

1. Make a repo file Refer to the official install...

Scary Halloween Linux Commands

Even though it's not Halloween, it's wort...

Detailed explanation of WeChat Mini Program official face verification

The mini program collected user personal informat...

How to elegantly implement WeChat authorized login in Vue3 project

Table of contents Preface Prepare Implementation ...

MySQL establishes efficient index example analysis

This article uses examples to describe how to cre...

Detailed explanation of Alibaba Cloud security rule configuration

Two days ago, I took advantage of the Double 11 s...

How to display JSON data in HTML

background: Sometimes we need to display json dat...

How to receive binary file stream in Vue to realize PDF preview

Background Controller @RequestMapping("/getP...

Web page creation basic declaration document type description (DTD

Using CSS layout to create web pages that comply w...

Data Structure - Tree (III): Multi-way Search Tree B-tree, B+ tree

Multi-way search tree Height of a complete binary...

Detailed examples of ajax usage in js and jQuery

Table of contents Native JS How to send a get req...

Mysql example of splitting into multiple rows and columns by specific symbols

Some fault code tables use the following design p...