docker 数据卷和docker数据卷容器以及数据卷的备份和还原

一:数据卷

  1.什么是数据卷

    数据卷是通过特殊设计的目录,可以绕过联合文件系统,为一个或者多个容器提供服务,数据卷是在docker宿主机当中,数据卷可以是文件也可以是文件夹。

  2.特点

    1.数据卷在容器之间可以共享,容器间传递数据将变得高效方便。

    2.对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作。

    3.在于数据持久化,它完全独立于容器的生命周期。

    4.docker不会在容器删除时删除其挂载的数据卷。

    5.数据卷的变化不会影响镜像的更新。

    6.数据卷是在容器启动时初始化的,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新的初始化数据卷中去

  3.如何为容器添加数据卷

    使用-v标记也可以指定挂载一个本地的已有目录到容器中去作为数据卷。

      docker run -itd -v /app:/opt/webapp centos /bin/bash

    上面的命令加载主机的app目录到容器的/opt/webapp目录。

  4.如何为数据卷添加访问权限 

    docker run -itd -v /app:ro/opt/webapp centos /bin/bash

    加了:ro之后,容器内对所挂载数据卷内的数据就无法修改了。

二:数据卷容器

  1.什么是数据卷容器(是基于数据卷的,也就是说这个容器是专门负责数据卷的)

     命明的容器挂在数据卷,其他的容器通过挂载这个容器实现数据共享,挂载数据卷的容器就是数据卷容器。也就是说该容器专门负责其他容器挂载使用。

  2.创建步骤

    1.创建数据卷容器db    
      docker run -it -v /db:/db --name db centos
   2.创建db1和db2两个容器,并使用--volumes-from挂载dbdata容器中的数据卷
      docker run -it --volumes-from db --name db1 centos
      docker run -it --volumes-from db --name db2 centos
    这样在三个容器中任何一个操作,在其他的容器都是可以看得见的,如果我们把数据卷容器停止或者删除掉,挂载数据卷容器的容器依然可以使用数据卷,也就是说数据卷容器在使用过程只起到一个数据文件传输的作用。

三:备份和还原

备份:docker  run  --volumes-from  dvt5  -v  /backup1:/backup2:wr --name=dvt10  centos tar  cvf  /backup/dvt5.tar  /datavolume1(
这个容器的名字叫做dvt10,挂载在dvt5上,宿主机目录是backup1,容器中的目录是backup2,权限是读写权限,运行ubuntu系统,压缩之后的路径是/backup/dvt5.tar,/datavolume1是需要压缩备份的目录): 将一个包含数据卷的容器中的数据,通过一个容器执行一个压缩命令,从而将数据备份出来。 还原:$docker run --volumes-from [container name] -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar [container data volume]

 

  

  

猜你喜欢

转载自www.cnblogs.com/talkjd-04/p/10491115.html