本文主要介绍了Docker容器数据卷的相关知识,为大家介绍的非常详细,对大家的学习或者工作都有一定的参考价值。有需要的朋友可以参考一下。
这是什么
我们先来看看Docker的哲学:
把应用和运行环境打包形成一个容器来运行,运行可以伴随着容器,但是我们对数据的要求是持久容器之间有可能共享数据。
如果Docker容器生成的数据保存为映像的一部分,而没有通过dockercommit生成新的映像,那么容器被删除后,数据自然会消失。
为了节省数据,我们在docker中使用卷。
一句话:这有点像我们Redis中的RDB和AOF。
我能做什么
卷是一个目录或文件,它存在于一个或多个容器中,并由docker安装到容器中,但不属于联邦文件系统,因此它可以绕过联合文件系统,并提供一些用于连续存储或共享数据的功能:
卷设计的目的是数据的持久化,完全独立于容器的生命周期,所以Docker不会在容器被删除时删除其挂载的数据卷。
特点:
总结:
数据量
直接命令加法
dockerrun-it-v/宿主机绝对路径目录:/容器内目录镜像名 dockerrun-it-v/宿主机绝对路径目录:/容器内目录:ro镜像名//带命令,指定访问权限,ro:readonly检查数据卷是否已成功装载:
dockerinspect容器ID使用DockerFile添加
在根目录下创建一个新的mydocker文件夹,并输入
您可以使用Dockerfile中的VOLUME指令向镜像添加一个或多个数据卷。
DockerFilebuild
DockerFile可以参考DockerHub中每个镜像的DockerFile文件进行编译,比如Tomcat:https://github.com/docker-library/Tomcat/blob/300AC03f4696c761a81fa0afbb893f368061de/8.5/JDK8/openJDK-Buster/dockerfile。
#volumetest FROMcentos VOLUME["/dataVolumeContainer1","/dataVolumeContainer2"] CMDecho"finished,-------success1" CMD/bin/bash构建后生成镜像
获取新图像zzyy/centos
运行容器
通过以上步骤,容器中的卷目录地址已经知道,对应的主机目录在哪里?
备注:
Docker装载主机目录Docker访问无法打开目录,权限被拒绝
解决方案:在挂载目录后添加一个额外的-privileged=true参数。
数据卷容器
这是什么?
命名容器装载数据卷,其他容器通过装载该容器(父容器)来共享数据。装载数据卷的容器称为数据卷容器。
容器之间的转移共享(-卷-自)
dockerrun-it--namedco2--volumes-fromdc01zzyy/cenos//dc01是先创建的容器,dco2继承dc01,实现数据共享数据卷由父容器(dc01)装载。如果在DC02和DC03装载dc01后删除dc01,数据卷仍将有效。
容器之间配置信息的传输,数据量的生命周期一直持续到没有容器使用为止。
摘要
这就是这篇关于Docker容器数据量的文章。有关Docker容器数据量的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)