ITPub博客

首页 > 应用开发 > IT综合 > Docker Volume介绍

Docker Volume介绍

原创 IT综合 作者:百联达 时间:2017-05-08 15:30:49 0 删除 编辑
一:简介
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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28624388/viewspace-2138700/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Docker 基本操作
请登录后发表评论 登录
全部评论
15年以上互联网经验,先后从事过制造业,证券业,物业行业和物流行业信息系统和互联网产品的设计落地实施,8年系统架构经验。最近关注企业数字化转型、财务数字化服务共享、大语言模型、Kubernetes微服务架构和Istio微服务治理框架。

注册时间:2013-02-05

  • 博文量
    332
  • 访问量
    1265622