您现在的位置是:主页 > 数据库技术 > 数据库技术

Docker Volume是什么

IDCBT2021-12-15服务器技术人已围观

简介本篇内容主要讲解“Docker Volume是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Docker Volume是什么”吧! 一:简介 Docker镜像是

本篇内容主要讲解“Docker Volume是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Docker Volume是什么”吧!

一:简介
Docker镜像是由多个文件系统(只读层)叠加而成.当我们启动一个容器的时候,Docker会加载镜像层并在其上添加一个读写层.如果运行中的容器修改了现有的一个已存在的文件,那该文件将会从读写层下的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所隐藏.当删除Docker容器,并通过该镜像重新启动时,之前的更改将会丢失.在Docker中,只读层以及在顶部的读写层的组合被称为Union FIle System(联合文件系统).

为了能够保存(持久化)数据以及共享容器间的数据,Docker提出了Volume的概念.简单来说,Volume就是目录或者文件,它可以绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上.

二:数据卷

1.映射本地服务器的目录 到 容器的/data目录下面
docker run -ti --name myCentos -v /data  centos:latest /bin/bash

docker inspect myCentos

查看结果  本地服务器目录/var/lib/docker/volumes/f4e3133241c8ff27327bc7b9c43588202c22a1cde460ba52b762b75571fed257/_data  被映射到了容器的/data目录下面

点击(此处)折叠或打开

    "Mounts": [

                {

                    "Name": "f4e3133241c8ff27327bc7b9c43588202c22a1cde460ba52b762b75571fed257",

                    "Source": "/var/lib/docker/volumes/f4e3133241c8ff27327bc7b9c43588202c22a1cde460ba52b762b75571fed257/_data",

                    "Destination": "/data",

                    "Driver": "local",

                    "Mode": "",

                    "RW": true,

                    "Propagation": ""

                }

            ]

2.容器/data目录下面的变动信息,在本地服务中都可以看的到。

3.该-v命令  等同于Dockerfile 文件中的  VOLUME  /data命令

4.挂载本地服务器指定目录到容器目录中(这是Dockerfile文件中无法实现的)

docker run -ti --name myCentos3 -v /data/docker:/data/docker  centos:latest /bin/bash

三:数据共享&数据卷容器

docker run -ti --name myCentos4 --volumes-from myCentos3  centos:latest /bin/bash

docker run -ti --name myCentos5 --volumes-from myCentos3  centos:latest /bin/bash   VOLUME /data

myCentos4 ,myCentos5 共享容器myCentos3 的数据卷,  myCentos3 是一个专门的数据卷容器。

常见的使用场景是使用纯数据容器来持久化数据库,配置文件或者数据文件等。 数据卷容器不需要启动即可以用来使用。

四:利用数据卷容器对其中的数据卷进行备份和恢复,以实现数据的迁移

备份:
docker run --name myCentos5 --volumes-from myCentos3 -v /backup:/backup  centos:latest tar czvf /backup/backup.tar /data/docker

恢复:
docker run --name myCentos6 -v /data/docker  centos:latest  /bin/bash (创建一个带有数据卷的容器)

docker run --name myCentos7 --volumes-from myCentos6  -v /backup:/backup  centos:latest  tar xzvf  /backup/backup.tar 

mv . /data/docker

五:删除数据卷容器

docker rm -v

到此,相信大家对“Docker Volume是什么”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

标签:

很赞哦! ()

本栏推荐