容器数据卷

容器数据卷,第1张

详解Docker容器数据卷

本文主要介绍了Docker容器数据卷的相关知识,为大家介绍的非常详细,对大家的学习或者工作都有一定的参考价值。有需要的朋友可以参考一下。

这是什么

我们先来看看Docker的哲学:

把应用和运行环境打包形成一个容器来运行,运行可以伴随着容器,但是我们对数据的要求是持久容器之间有可能共享数据。

如果Docker容器生成的数据保存为映像的一部分,而没有通过dockercommit生成新的映像,那么容器被删除后,数据自然会消失。

为了节省数据,我们在docker中使用卷。

一句话:这有点像我们Redis中的RDB和AOF。

我能做什么

卷是一个目录或文件,它存在于一个或多个容器中,并由docker安装到容器中,但不属于联邦文件系统,因此它可以绕过联合文件系统,并提供一些用于连续存储或共享数据的功能:

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

特点:

  • 数据卷可以在容器之间共享或重用数据。
  • 体积的变化可以直接生效。
  • 数据卷中的更改将不包括在镜像的更新中。
  • 数据容器的生命周期持续到没有容器使用它为止(-volumesfrom)
  • 总结:

  • 容器数据的持久性
  • 在容器之间继承和共享数据
  • 数据量

    直接命令加法

    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容器数据量的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://outofmemory.cn/zz/774218.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存