(四)Docker数据卷容器

【Docker篇】深度理解容器数据卷,匿名挂载和具名挂载,数据卷容器 文章目录数据容器卷1. 什么是容器数据卷2. 使用数据卷方式一:我们使用命令直接添加。方式二:使用Dockerfile3. 实战4. 匿名挂载和具名挂载5. 数据卷容器6. 总结 数据容器卷 1. 什么是容器数据卷 我们都知道,通过Docker可以将我们的软件运行环境和基于运行环境开发的软件打包成镜像,而镜像运行伴随着容器,内部数据文件的生命周期也同容器的生命周期。但是在我们实际的应用中,我们是希望能够将一些数据持久化的。 就好比,你安装一个MySQL,结果你把容器删了,就相当于删库跑路了,这TM也太扯了吧 阅读详情

什么是数据卷容器

命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。
简单来说,就是通过挂载其他容器来获得其他容器所拥有的数据卷。


数据卷容器有什么作用

在Docker容器的实际使用中,经常会遇到容器的数据持久化,容器之间的数据共享等问题,通常我们有两种解决方案:

  1. 数据卷(Data Volumes):就是将容器内数据直接映射到本地主机环境的指定文件目录之中,可以理解为容器挂载一个虚拟数据卷然后映射到一个主机目录中
  2. 数据卷容器(Data Volume Containers):用专门的容器来挂载数据卷,其他容器通过挂载这个父容器来实现数据共享,这个专门挂载数据卷的容器就是数据卷容器

简单的总结就是有一个容器来专门管理数据的持久化和容器之间数据共享。前者常用于单一容器数据持久化,后者常用于多容器之间的数据共享和数据持久化。

容器之间数据卷的配置信息会相互传递,其生命周期一直持续到没有容器使用为止。举个例子,b挂载了a,c挂载了b。那么b就拥有了a的数据卷,这种拥有是永久的,c会拥有a、b、c这三个容器的所拥有的数据卷配置。并且删除某个容器并不会对继承他的子容器存在影响。例如如果删除了b,a、c所拥有的数据卷配置不会变化。

之所以不会发生变化,我们可以查看容器继承前后的容器细节信息;
容器A和容器B由不同的镜像生成。A继承了B。可以看到,A是直接继承了B的容器卷。
在这里插入图片描述

如何创建和使用数据卷容器

1、镜像准备

  1. 使用dockerfile创建一个my-centos-vim镜像,该镜像是没有数据卷的
FROM centos:7
MAINTAINER yyyL<yyyL@163.com>

ENV MYPATH /tmp/yyyL
WORKDIR $MYPATH

RUN yum -y install vim
RUN mkdir -p $MYPATH

CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
  1. 使用dockerfile创建一个my-centos-volume镜像,该镜像的容器作为数据卷容器,包含两个数据卷["/dataVolumeContainer1","/dataVolumeContainer2"]
    ,该镜像是有数据卷的
FROM centos:7
MAINTAINER yyyL<yyyL@163.com>

ENV MYPATH /tmp/yyyL
WORKDIR $MYPATH

RUN yum -y install vim
RUN mkdir -p $MYPATH

VOLUME ["/tmp/dataVolumeContainer1","/tmp/dataVolumeContainer2"]
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash

在这里插入图片描述

2、创建容器

  1. 先使用my-centos-volumej镜像创建数据卷容器。

    命令:docker run -it --name="my-centos-volume" my-centos-volume:latest
    在这里插入图片描述

  2. 再使用没有数据卷的镜像以第一步创建的数据卷容器作为父容器,创建两个容器 vim-1、vim-2。
    挂载方式:在使用run命令启动容器时,通过--volumes-from 容器名称 来挂载其他容器

    命令:docker run -it --name="vim-1 or vim-2" --volumes-from my-centos-volume my-centos-vim:latest

    挂载结果:vim-1、vim-2都以my-centos-volume作为父容器分别和my-centos-volume做挂载。
    在这里插入图片描述
    通过docker inspect 容器id命令查看vim-1、vim-2的Mounts节点数据,发现是和my-centos-volume容器的Mounts节点数据是一样的。并且vim-1、vim-2的容器内部也存在["/tmp/dataVolumeContainer1","/tmp/dataVolumeContainer2"]目录。
    在这里插入图片描述


3、测试

1、显然,在my-centos-volume容器绑定的宿主机目录下进行操作,在my-centos-volume容器里是可以看到的,那在vim-1、vim-2中是否也可以看得到呢?
通过tail -F data.txt命令在容器的实时打印/tmp/dataVolumeContainer1/data.txt的内容:
在这里插入图片描述
再在宿主机的绑定目录上创建data.txt文件,并写入内容,可以看到。3个容器均有打印。
在这里插入图片描述

2、停止my-centos-volume容器,查看vim-1、vim-2中的data.txt是否存在?再修改宿主机里的内容,vim-1、vim-2中的data.txt是否会同步修改呢?
当我们停掉了my-centos-volume后,再在宿主机中修改data.txt。vim-1、vim-2中的data.txt还是会同步修改。
在这里插入图片描述
3、如果my-centos-volume中有一个数据卷A,vim-1有一个数据卷B、vim-2中有一个数据卷C。还是依照上面的父子容器的关系,即vim-1和vim-2都将my-centos-volume作为父容器,那么这3个容器的最终的数据卷是什么样子?
my-centos-volume-a、b、c 这3个镜像分别有各有一个dataVolumeContainer-A、B、C的数据卷,my-centos-volume-b、c都将my-centos-volume-a作为父容器。

FROM centos:7
RUN yum -y install vim
VOLUME ["/tmp/dataVolumeContainer-A"]
CMD /bin/bash

在这里插入图片描述

(四)Docker容器数据卷 目录 docker容器数据卷是什么? 特点 数据卷的创建方式 什么是docker数据卷容器? docker容器数据卷是什么? docker的理念将运行的环境打包形成容器运行,运行可以伴随容器,但是我们对数据的要求是希望持久化,容器之间可以共享数据,Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为容器的一部分保存下来,那么当容器被删除之后,数据也就没了,为了能够保存数据,在docker容器中使用卷。卷就是目录或者文件,存在于一个或者多个容器中,但是不属于 阅读详情

相关推荐

用简单仿真链路产生 WiFi CSI(不依赖专用工具箱,matlab实现)

这篇文章详细介绍了使用MATLAB仿真生成WiFi信道状态信息(CSI)的过程。内容包括:准备工作(定义OFDM和MIMO参数)、基本参数设置(天线数、FFT点数等)、构造训练OFDM符号、多径瑞利信道建模、逐天线时分发射接收处理、CSI信道估计方法,以及幅值和相位的可视化。通过BPSK调制和瑞利衰落信道仿真,实现了简单的CSI生成流程,为初学者理解CSI产生机理提供了直观指导。文章强调这仅是基础仿真,更深入的研究需要实际数据采集。文末还提供了WiFi指纹定位的相关参考资料。

静水流深,沧笙踏歌 1203

Docker之数据卷(Data Volumes)和数据卷容器(Data Volume Containers )

Docker之数据卷(Data Volumes)和数据卷容器(Data Volume Containers )的介绍和相关操作

qq_58804301的博客 3412

保姆级教程:用Python脚本一键把选股结果导入通达信自选股(附完整代码)

本文提供了一份详细的Python自动化教程,教你如何将选股结果一键导入通达信自选股。通过解析通达信文件结构、编写Python脚本实现股票代码转换和批量导入,大幅提升量化交易效率。教程包含完整代码示例,特别适合使用通达信(TDX)的投资者和量化交易开发者。

weixin_30915951的博客 358

Docker容器——数据卷和数据卷容器

Docker容器——数据卷和数据卷容器

weixin_71429844的博客 1301

ISP图像处理Verilog仿真框架搭建(附代码)

基于Verilog的图像处理仿真框架搭建

路漫漫其修远兮,吾将上下而求索 1896

多体动力学分析软件:SIMPACK_(3).SIMPACK模型创建与编辑

在 SIMPACK 中,模型的创建与编辑是多体动力学分析的基础。通过了解模型的基本结构、创建方法、编辑技巧和高级功能,用户可以高效地构建和优化复杂的多体系统模型。无论是手动创建、通过脚本创建还是导入现有的 CAD 模型,SIMPACK 都提供了强大的工具和灵活的接口,帮助用户实现精确和高效的仿真分析。希望本节内容对您在 SIMPACK 中进行多体系统建模有所帮助。如有任何问题或需要进一步的指导,请参考 SIMPACK 的官方文档或联系技术支持。

kkchenjj的博客 1011

Docker:数据卷&数据卷容器

一,概念解析 1,数据卷:数据卷就是在宿主中可以在容器之间进行共享和重用的一系列和文件和文件夹,通过docker run -v命令可以将数据卷挂载到对应的容器目录空间,进行文件读取,容器卷特性如下 *数据卷可以在容器之间共享和重用,容器间传递数据将变得高效方便 *对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作 *对...

zp_zhang的博客 5504

基于Simulink的双向DC-DC变换器在储能系统中的应用仿真

摘要:本文详细介绍了基于Simulink的双向DC-DC变换器在光伏储能系统中的仿真实现。主要内容包括:1)采用非隔离型双向Buck-Boost拓扑作为储能系统枢纽;2)针对750V直流微网中的20kWh锂电池接口场景进行建模;3)详细阐述双闭环控制器设计(电压外环+电流内环)、工作模式判断逻辑等关键步骤;4)通过仿真验证了系统在功率阶跃和模式切换下的性能。文章提供了完整的建模流程和控制方法,为储能系统接口设计提供了实用参考。

amy_mhd的博客 178

Docker: 什么是数据卷容器和使用

Docker: 什么是数据卷容器和使用

程序员无羡的博客 187

详解AXI4-Lite接口(3)--AXI4-Lite接口IP源码仿真及分析(Master接口)

通过本文您会学到:1、了解AXI4-Lite_Master接口的逻辑实现;2、加深Xilinx IP、仿真工具的使用;3、提高阅读时序图的能力。

孤独的单刀 6445

基于51单片机的电子记分牌的设计

基于51单片机的电子记分牌的设计 电子记分牌基于51单片机的电子记分牌的设计摘要1 引言2 总体设计方案2.1 设计思路(1)设计要求(2)设计思路(3)设计方案2.3综合设计方框图(1)硬件设计框图(2)软件设计3 设计原理分析3.1 电源、复位、下载电路的设计(见图1、2、3)3.2 时钟电路的设计3.3 矩阵键盘电路的设计3.4 数码管显示电路设计4程序代码 摘要 本设计为电子记分牌设计,是以STC89C52芯片为核心,辅以必要电路设计进行的。用4位LED七段数码管显示比赛两方的分数(每方分数用2位

行走的皮卡丘 2037

Docker入门到实践 (四) docker容器数据卷与数据卷容器

文章目录一、前言二、容器数据卷1、什么是容器数据卷2、容器数据卷的作用与特性3、容器数据卷的添加方式一:通过命令添加数据卷方式二:通过DockerFile添加数据卷三、数据卷容器1、什么是数据卷容器2、添加数据卷容器 一、前言   在上一篇文章中已经介绍了docker常用命令的讲解, 下面正式进入到docker镜像制作与容器数据卷。 二、容器数据卷 1、什么是容器数据卷   docker的理...

浅末年华的博客 3723

YOLOv12改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

《YOLOv12高效涨点改进专栏》提供500+创新改进方案,涵盖卷积、主干网络、注意力机制等模块优化,适用于检测、分割等任务。改进点来自顶会论文和个人经验,支持多种模型版本和任务场景。专栏包含详细教程、数据集增强、性能评估工具等,帮助科研人员快速实现模型优化和论文发表。提供完整运行项目和环境配置指导,适合计算机及相关专业研究人员使用,持续更新保障长期科研需求。

Ai缝合怪、助力小伙伴高效发论文 2300

四、Docker容器数据卷

数据卷(Data Volumes)是宿主机中的一个目录或文件,数据卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。当容器目录和数据卷目录绑定后,对方的修改会立即同步,一个数据卷可以被多个容器同时挂载,一个容器也可以被挂载多个数据卷。数据卷的作用容器数据持久化外部机器和容器间接通信容器之间数据交换。

qq_49723651的博客 1397

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

四、docker容器数据卷

目录 一、数据卷和容器 二、数据卷 1、命令添加方式 (1)在容器内创建一个数据卷 (2)、挂载一个主机目录作为数据卷 (3)、挂载一个本地主机文件作为数据卷 2、Dockerfile添加方式(以centos为例) 三、数据卷容器 1、创建数据卷容器 2、挂载数据卷容器的数据卷 3、数据卷容器注意事项 4、数据卷容器的使用实例——利用数据卷容器来迁移数据 四、可能遇...

嘻哈吼嘿呵的博客 319

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

四、Docker——容器数据卷

Docker容器数据卷 1容器数据卷 先来看看Docker的理念: 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的。容器之间希望有可能共享数据 Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。为了能保存数据在docker中我们使用卷。 一句话:有点类似...

m0_38143867的博客 263

docker容器数据卷 四

一:什么是容器数据卷 ---持久化数据,用来保存容器运行产生得数据,有点类似我们Redis里面的rdb和aof文件 ---Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。 为了能保存数据在docker中我们使用卷 注意: 卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union FileSystem提供一些用于持续存储或共享数据的..

TonyWu的博客 924

Docker (四)【容器数据卷】

如果数据都放在容器中,那么容器删除,数据就会丢失!MySQL,容器删除了,删库跑路!容器之间可以有一个数据共享技术,Docker 容器中产生的数据,同步到本地目录挂载:将容器内的目录,挂在到 Linux 上面总结:容器的持久化和同步操作!容器也是可以数据共享的 特点:在本地修改能够同步到容器内,无论容器是否在运行都能自动同步 在本地可视化数据库,创建一个表,同时也能将创建的数据同步到容器中 所有的 docker 容器内的卷,没有指定目录的情况下都是在 目录下 我们通过具名挂载可以方便的找到一个卷,大多数情况

Vinjcent 2041

Docker学习(四)Docker容器的数据卷和数据卷挂载

一、数据卷 1、容器存在的问题: 2、数据卷的作用: 将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全。 3、数据卷的定义: 4、数据卷操作的基本语法如下: 1、新增和查询数据卷 #创建一个volume docker volume create #列出所有的volume docker volume ls #显示一个或多个volume的信息 docker volume inspect 效果如下:html时文件夹的名称 2、删除数据卷,命令如下: #删.

我是混IT圈的 2349

四.docker容器数据卷

docker容器数据卷

醉卧雕龙舫,的博客 347

docker系列-四-————容器数据卷

​ docker容器在产生数据的时候,如果不通过docker commit生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除之后,数据自然而然的也会消失。为了能保存数据,容器中引用了数据卷的概念。好的,大家下期 Dockerfile 再见。

lzh521LX的博客 1047

Docker基础篇笔记 (四) Docker容器数据卷

一、容器数据卷是什么 一句话:有点类似我们Redis里面的rdb和aof文件 先来看看Docker的理念: 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的 容器之间希望有可能共享数据 Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来, 那么当容器删除后,数据自然也就没有了。 ...

喜欢历史的码农 271

Docker(四)容器数据卷

Docker(三)镜像 目录 1.引入数据卷 2.作用(将容器产生的数据持久化) 3.容器内添加 4.查看是否挂载成功 5.容器启动带权限(只读) 6.其他问题 7.数据卷容器 1.引入数据卷 * 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的 * 容器之间希望有可能共享数据 Docker容器产生的数据,如果不通过docker...

yangxin_blog的专栏 305

Docker教程(四):docker容器数据卷

前言 本文根据狂神说视频资料整理。https://www.bilibili.com/video/BV1og4y1q7M4?from=search&seid=16447684728895719563 Docker 容器数据卷 什么是容器数据卷 容器之间可以有一个数据共享的技术!Docker容器中产生的数据,同步到本地! 这就是卷技术!目录的挂载,将我们容器内的目录,挂载到Linux上面! [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ic6c04Y2-159272637

weixin_39085109的博客 1053

Docker入门(四)——Docker容器数据卷

一、是什么       先看看Docker的理念: 将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求希望是持久化的; 容器之间希望有可能共享数据。      Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。      为

qq_42765068的博客 197

Docker之旅(四)Docker容器数据卷

容器数据卷 容器中的数据,一旦删除容器,数据就会丢失。将容器中数据同步到容器外本地的技术——数据卷。目录的挂载,将我们容器内的目录,映射挂载到Linux上面。容器的持久化和同步操作!容器间也是可以数据共享的! 数据卷的使用 方式一 :直接使用命令挂载 -v docker run -it -v 主机目录:容器内目录 -p 主机端口:容器内端口 测试 docker run -it -v /home/test:/home centos /bin/bash 启动容器后,发现/home目录下出现了一个test

涵sir的博客 233
上一篇: (三)Docker容器数据卷
下一篇: (五)DockerFile保留字和使用DockerFile构建镜像
村口老师傅
博客等级 码龄9年 67粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值