Docker 容器数据卷 volumes-from | 学习笔记

简介: 快速学习 Docker 容器数据卷 volumes-from

开发者学堂课程【Docker 快速入门:Docker 容器数据卷 volumes-from】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/616/detail/9404


Docker 容器数据卷 volumes-from

数据卷就是数据持久化的操作,数据卷容器是命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。

活动硬盘上挂活动硬盘,实现数据的传递依赖。主机到容器,容器到主机,比如一组,二组,三组的组长三个活动硬盘,挂在班长的活动硬盘上面,可以进行数据的传递。

以上一步新建的镜像 zyy/centos 为模板并运行容器 dc01/dc02/dc03,新生成的镜像只要运行 zyy/centos,就会在根目录生成,dataVolumeContainer1,dataVolumeContainer2,假设 1 是父容器,像 redis 做的主从复制,1 号机有了,另外的机也会有,父有子,子父之间有继承,java 中的 extends。

1、容器间传递共享(--volumes-from),需求是 2 的数据来自于 1,如何写?Dc01传给 2,

(1)先启动一个父容器 dc01,在 dataVolumeContainer2 新增内容。

exit 退出

Docker ps 当前没有运行容器

Docker run -it --name dc01 zzyy/centos 自定义

ll 运行

Cd dataVolumeContainer2

Pwd

/dataVolumeContainer2

Ll

Total0

在当前目录下

touch dc01_ add. txt 一号机做的事

Ctrl+p+q 退出

Docker ps

1 号机 dc01 运行着

没加名字--name dc01,所以 docker 内部随机给一个,但是加了名字,注意有些是一个警号,有些是两个警号。指定名字。

Dc01 作为父容器

(2)dc02/dc03 继承自 dc01

执行命令 docker run -it -- name dc02 -- volumes- from dc01 zzyy/ centos

运行 dc02,它也是以 zzyy/ centos 为模版,肯定会有 dataVolumeContainer2,因为是来自同一个模版。

Cd dataVolumeContainer2

Pwd

/dataVolumeContainer2

有了 dataVolumeContainer2 文件夹,在 033 容器有 dc01_ add. Tx。

touch dc02_ add. Txt

退出 exit

Docker ps

可以看到 dc01,dc02。

docker run -it --name dc03 -- volumes- from dc01 zzyy/ centos

Cd dataVolumeContainer2

Ll

3 也来自于 1,

touch dc03_ add. Txt

全部退出。

Docker ps

可以看到 dc01,dc02,dc03。

3 和 2 继承 1,会不会反作用影响前面,比如子类继承 dc01,ll 之后,dco1_add. Txt ,dc02_add. txt 中有 1 和 2,在 3 里面添加以后,是否会影响 1 和 2。

Docker attach dc01

Pwd

/dataVolumeContainer2

Ll

Total

dc01_ add, txt

dc02_ add. txt

dc03_ add, txt

继承后,容器卷即达到了继承又达到了共享,传递数据相关的目的,docker 容器很强大,父到子,子到父,可以互相传递。

(3)回到 dc01 可以看到 02/03 各自添加的都能共享了

(4)删除 dc01,dc02 修改后 dc03 可否访问

如果不换新,docker attach dc02

Ll2 里面也有 123,一样。

dc01_ add, txt

dc02_ add. txt

dc03_ add, txt

Docker ps

Dc03,dc02,dc01 三个容器

删除 dc01

docker rm -f dc01

2 和 3 继承 1。

Docker ps

只有 2。

Docker attach dc02

Pwd

/dataVolumeContainer2

Ll 还是在当前路径下面

1 没有,2 和 3 还在。

dc02_ update. Txt

Touch dc02_ update. Txt

Ll

dc01_ add. txt

dc02_ add. txt

dc02_ update. txt

dc03_ add. Txt

之前 2 和 3 都继承 1,现在 2 没有受到影响,不用验证,3 也不受影响,但是 2 和 3 都继承 1,没有 1,在 2 上进行修改,3 上会不会有?

退出,docker attach dc03

Pwd

/dataVolumeContainer2

Ll

3 继承于 1,1 没有了。

dc01_ add. txt

dc02_ add. txt

dc02_ update. txt

dc03_ add. Txt

数据之间进行共享

(5)删除 dc02 后 dc03 可否访问,再进一步

让 4 继承 3,

docker run - it

-- name dq04 --volumes- from dc03 zzyy/ centos_ dc

(6)新建 dc04 继承 dc03 后再删除 dc03

根据 2 删除 1,2,3,存在。删除 3,4 有。

4 继承 3

docker run- it·- name dc04 --volumes- from dc03 zzyy/ centos

Ll

dc01_ add. txt

dc02_ add. txt

dc02_ update. txt

dc03_ add. txt

dc03_ update. Txt

删除 3 后 4 有。

结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。只要还有,就可以进行全链备份。

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

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
阿里云实时数仓实战 - 用户行为数仓搭建
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求:熟练掌握 SQL 语法熟悉 Linux 命令,对 Hadoop 大数据体系有一定的了解   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
相关文章
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
504 5
|
2月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
237 6
|
2月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
530 4
|
Linux Docker 容器
Docker操作 :容器命令
Docker操作 (四)
364 56
|
Linux 开发者 Docker
如何构建在 Docker 容器中运行命令?
【1月更文挑战第6天】
281 0
|
安全 Shell Linux
docker进入容器命令
docker进入容器命令
895 1
|
应用服务中间件 Shell nginx
Docker容器操作基础命令
关于Docker容器操作基础命令的教程,涵盖了从启动、查看、删除容器到端口映射和容器信息获取的一系列常用命令及其使用方法。
408 14