• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    详解Docker容器数据卷

    是什么

    先来看看Docker的理念:

    将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求希望是持久化的容器之间希望有可能共享数据

    Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来, 那么当容器删除后,数据自然也就没有了。

    为了能保存数据在docker中我们使用卷。

    一句话:有点类似我们Redis里面的RDB和AOF

    能干嘛

    卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union FileSystem提供一些用于持续存储或共享数据的特性:

    卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。

    特点:

    总结:

    数据卷

    直接命令添加

    docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
    docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名 // 带命令,指定访问权限, ro: read only

      查看数据卷是否挂载成功:

    docker inspect 容器ID

    使用DockerFile添加

    根目录下新建mydocker文件夹并进入

    可在Dockerfile中使用VOLUME指令来给镜像添加一个或多个数据卷

    DockerFile 构建

    DockerFile的编写可以参考 DockerHub 中各镜像的DockerFile文件,如tomcat:https://github.com/docker-library/tomcat/blob/300ac03f4696c761a81fa10afbb893f3368061de/8.5/jdk8/openjdk-buster/Dockerfile

    #volume test
    FROM centos
    VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
    CMD echo "finished,-------success1"
    CMD /bin/bash

    build后生成镜像

    获得一个新镜像zzyy/centos

    run容器

    通过上述步骤,容器内的卷目录地址已经知道,对应的主机目录在哪

    备注:

    Docker挂载主机目录Docker访问出现cannot open directory,Permission denied

    解决办法:在挂载目录后多加一个--privileged=true参数即可

    数据卷容器

    是什么

      命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器.

    容器间传递共享(--volumes -from)

    docker run -it --name dco2 --volumes-from dc01 zzyy/cenos  // dc01是先创建的容器,dco2继承dc01,实现数据共享

    数据卷由父容器(dc01)挂载,如果在dc02,dc03挂载dc01后,删除dc01,数据卷仍然会有效。

    容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。

    总结

    到此这篇关于Docker容器数据卷的文章就介绍到这了,更多相关Docker容器数据卷内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    上一篇:Docker Hub运行原理及实现过程解析
    下一篇:Manjaro安装CUDA实现教程解析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    详解Docker容器数据卷 详解,Docker,容器,数据,卷,