千家信息网

Docker Volume是什么

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇内容主要讲解"Docker Volume是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Docker Volume是什么"吧!一:简介Docker
千家信息网最后更新 2025年01月23日Docker Volume是什么

本篇内容主要讲解"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目录下面

点击(此处)折叠或打开

  1. "Mounts": [

  2. {

  3. "Name": "f4e3133241c8ff27327bc7b9c43588202c22a1cde460ba52b762b75571fed257",

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

  5. "Destination": "/data",

  6. "Driver": "local",

  7. "Mode": "",

  8. "RW": true,

  9. "Propagation": ""

  10. }

  11. ]

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是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0