zoukankan      html  css  js  c++  java
  • docker(5):数据的管理

    Docker的volume卷 为了能持久话保存和共享容器的数据。

      使用docker volume卷的两种方式

      1:数据卷

      2:数据卷容器

    1:数据卷

    数据卷:数据卷会绕过docker 的ufs 直接写在物理设备上,对数据卷的操作可以及时生效,并且数据卷是可以进行共享重用的,为一个或者多个容器提供访问。数据卷的存在的目的在于永久话保存docker的数据,数据卷独立于容器的生命周期之外。不会因docker的变化儿产生变化

      (1):挂载一个随机名称的目录

      我们在运行容器的时候 通过使用  -V 来添加 数据卷,也可以多次指定挂载多个。

           运行一个主机名为 centos1 容器名为centos1 的容器

           docker run  -it -v /data -h centos1  --name centos1 centos

      注:-v /data 我们挂载了一个名为data的数据卷 (-h centos1) 指定主机名

      

      使用-v 时 docker 守护进程会自动帮助我们创建一个data文件.这时的data文件其实挂载了宿主机的文件我们来查看一下宿主机文件的地址:

      推出容器查看centos1 的 配置信息

            docker inspect centos1  找到Mounts 节点

      

      Source 这里就是对应的宿主机目录随机了一个名称:默认是可读写的,我们不论是在宿主机中还是在容器写入的任何信息,两边都可以进行查看。Volume 就是docker 的卷,代表目录或者文件。

           因为这里的卷是挂载的宿主机的文件,所以不会随着容器的销毁而销毁.

      (2)挂载一个宿主机的文件或目录

      docker run -it -v /var/lib/docker/volumes:/volumes -h centos2 --name centos2 centos

      -v /var/lib/docker/volumes:/volumes     

      上面的命令挂载了宿主机 /var/lib/docker/volumes 文件路径:/volumes 容器的路径。

      

      看到已经挂载成功了,我们可以看多个容器我们可以共用一个文件。这样就可以避免我们的数据配置。。。信息丢失,比如我们可以分成存放 程序,日志,配置等信息

       -v /var/lib/docker/volumes:/volumes:ro 可以设置只读,默认是 rw读写

    2:数据卷容器

      

      (1):使用数据卷:

      我们运行一个名为Centos3的容器,并且centos2 作为一个数据卷容器

      docker run -it  --volumes-from centos2 -h centos3 --name centos3 centos

           参数: --volumes-from   centos2  指定一个卷容器。

      运行成功后我们查看一下centos3 是否共享了数据卷容器centos2的卷

      

      上图中我们可以看到,centos3和centos2共用了卷。

      为什么使用数据卷

       在生产测试环境中我们在使用的时候可以只创建一个容器,不运行任何程序,此容器的作用就是为了共享数据卷。这个容器就被称为数据卷容器。

       注意:在删除挂载有数据卷容器的时候我们要加上 -v 选项 ,这样才会删除数据卷,不然出来不会删除外,还会浪费磁盘空间

       例如:Docker rm -v centos3 当我们删除centos3 的时候,他使用的数据卷是不会被删除的,因为当一个数据卷在被其他容器使用的时候是不会被删除的。

      (2):数据卷的备份

      数据卷的备份是通过启动一个新的容器,在新的容器中执行打包压缩命令,来实现备份操作的。也就是说这个容器是可以执行后立即删除的

      执行下面的命令进行备份:

      docker run --rm --volumes-from centos2 -v /backup:/backup centos tar cvf /backup/volume.tar /volumes

      

      备份完成我们查找一下备份

      

      查看容器是否存在:

      

      我们可以看到当容器执行完命令后就删除了

      命令选项作用:

      --rm            :容器运行后删除

      --volumes-from centos2      :备份数据卷容器挂载的所有数据卷

      -v /backup:/backup             :  备份后存放的地址

      tar cvf /backup/volume.tar  :执行备份并且指定备份的名称

      /volumes       :数据卷容器centos2  挂载的数据卷目录

    有不足之处 希望大家指出相互学习,

                本文原创:转载请注明出处 谢谢!

  • 相关阅读:
    Java多线程学习
    JAVA类的加载机制
    这四款也许是电脑录屏软件中免费、无广告且最实用的,程序员必备
    手机端没有好的录屏软件?地表最强移动端录屏软件了解一下?
    手把手教你 在Pytorch框架上部署和测试 关键点人脸检测项目DBFace,成功实现人脸检测效果
    520是秀恩爱吃狗粮,521才是真正的告白日,- Python告白神器用起来 !
    截图还在使用QQ的Ctrl + Alt + A 截图?还不会网页长截图?
    卷积神经网络之卷积操作,使用卷积运算实现图片边缘特征检测
    小白也能弄懂的卷积神经网络(Convolutional Neural Networks )
    官网安装Python包太慢?教你三种下载安装方式-PiP、conda、轮子,教你三种Pytorch的下载安装方式,保证你再也不用出现Error
  • 原文地址:https://www.cnblogs.com/szlblog/p/10666242.html
Copyright © 2011-2022 走看看