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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 快速学习 Docker 容器数据卷 volumes-from

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

课程地址https://developer.aliyun.com/learning/course/850/detail/14044


Docker 容器数据卷 volumes-from


内容介绍

一.数据卷容器是什么

二.数据卷容器总体介绍

三.容器间传提共享


一.数据卷容器是什么

数据卷是数据持久化的一个操作,什么是数据卷容器呢?

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

一句话讲解就是:

活动硬盘上面挂活动硬盘,实现数据的传递依赖。

班长的活动硬盘挂在老师的机器上,这就是前面讲的主机到容器,容器到主机。比方说一组二组三组的组长也有三个活动硬盘,假设又挂在班长的活动硬盘上面。这个就可以进行数据的传递。


二.数据卷容器总体介绍

-以上一步新建的镜像 zzyy/centos 为模板并运行容器 dc01/dc02/dc03

假设1是父容器有点像主从制,一号机有了,另外那个机器也会有

-它们已经具有容器卷

/dataVolumeContainer1

/dataVolumeContainer2


三.容器间传提共享

  • 先启动一个父容器 dc01 ——在 dataVolumeContainer2 新增内容

image.png

[root@atguigu /]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATU US PORTS NAMES

[root@atguigu /]#

说明当前没有正在运行的容器了。

[root@atquigu /]# dockerrun-it--name dc01zzyy/centos

[root@5ae43b1bcf46 /]# ll

total 52

lrwxrwxrwx. 1 root root 7 May 31 18:02 bin->usr/bin

drwxr-xr-x. 2 root root 4096 Jul 13 03:55 dataVolumeContainer1

drwxr-xr-x. 2 root root 4096 Jul 1303:55dataVolumeContainer2

drwxr-xr-x. 5 root root 380 Jul 13 03:55 dev

drwxr-xr-x. 47 root root 4096 Jul 13 03:55 etc

drwxr-xr-x. 2 root root 4096 Apr 11 04:59 home

lrwxrwxrwx. 1 root root 7 May 31 18:02 lib -> usr/lib

lrwxrwxrwx. 1 root root 9 May 31 18:02 2 lib64 -> usr/lib64

drwxr-xr-x. 2 root root 4096 Apr 11 04:59 media

drwxr-xr-x. 2 root root 4096 Apr 11 04:59 mnt

drwxr-xr-x. 2 root root 4096 Apr 11 04:59 opt

dr-xr-xr-x. 295 root root 0 Jul 13 03:55 proc

dr-xr-x---. 2 root root 4096 May 31 18:03 root

drwxr-xr-x. 10 root root 4096 May 31 18:03 run

lrwxrwxrwx. 1 root root 8 May 31 18:02 sbin -> usr/sbin

drwxr-xr-x. 2 root root 4096 Apr 11 04:59 srv

drwxr-xr-x 13 root root 0 Jul 13 01:45 sys

drwxrwxrwt. 7 root root 4096 May 31 18:03 tmp

drwxr-xr-x. 13 root root 4096 May 3118:02 usr

drwxr-xr-x. 18 root root 4096 May 31 18:02var

[root@5ae43b1bcf46 /]#cd dataVolumeContainer

[root@5ae43b1bcf46 dataVolumeContainer2]#pwd /dataVolumeContainer2

[root@5ae43b1bcf46 dataVolumeContainer2]#ll total 0

[root@5ae43b1bcf46 dataVolumeContainer2]#touch dc01 add.txt

[root@5ae43b1bcf46 dataVolumeContainer2]#

[root@5ae43b1bcf46 dataVolumeContainer2]#[root@atguigu/]#

[root@atguigu /]# docker ps

image.png

[root@atguigu /]#

  • dc02/dc03 继承自 dc01

——volumes-from

——命令 ——dc02/dc03 分别在 dataVolumeContainer2 各自新增内容

image.png

[root@5ae43b1bcf46 dataVolumeContainer2]#[root@atguigu/]#

[root@atguigu /]# docker ps

[root@atguigu /]# docker run -it--name dc02 T-volumes-from dc01 zzyy/centos

[root@9784bd77d033/#ll

total 52

Lrwxrwxrwx. 1root root 7 May 31 18:02 bin -> usrfbin

drwxr-xr-x. 2 root root 4096 Jul 13 03:55 dataVolumeContainer1

arwxr-xr-x. 2 root root 4096 Jul 13 03:55 dataVolumeContainer2

drwxr-xr-x. 5 root root 380 Jul 13 03:57  dev

drwxr-xr-x. 47 root root 4096 Jul 13 03:57 etc

drwxr-xr-x. 2 root root 4096 Apr 11 04:59 home

Lrwxrwxrwx. i root root 7 May 31 18:02 2 lib -> usr/lib

Lrwxrwxrwx. i root root 9 May 31 18:02 lib64 -> usr/lib64

drwxr-xr-x. 2 root root 4096 Apr 11 04:59 media

drwxr-xr-x. 2 root root 4096 Apr 11 04:59 mnt

drwxr-xr-x. 2 root root 4096 Apr 11 04: 59 opt

dr-xr-xr-x.301 root root0 Jul 13 03:57 proc

dr-xr-X---. 2 root root 4096 May 31 18:03root

drwxr-xr-x. 10 root root 4096 May 31 18:03run

rwxrwxrwx. 1 root root 8 May 31 18:02 sbin -> usr/sbin

drwxr-xr-x. 2 root root 4096 Apr 11 04:59srv

drwxr-xr-x 13 root rooto Jul 13 01:45 sys

drwxrwxrwt. 7 root root 4096 May 31 18:03 tmp

drwxr-xr-x. 13 root root 4096 May 31 18:02 usr

drwxr-xr-x. 18 root root4096 May 31 18:02 var

[root@9784bd77d033 dataVolumeContainer2]# touch dc02_add. txt

[root09784bd77d033 dataVolumeContainer2]#

Exit 退出

[root@atguigu /]# docker ps

[root@atguigu /]#docker run-it--namedc03--volumes-from dc1zzyy/centos [root@11ddcf53de8c/]#cddataVolumeContainer2 [root@11ddcf53de8c dataVolumeContainer2]#ll

total 0

-rw-r--r--. 1 root root 0 Jul 1303:55 dco1.add.txt

-rw-r--r-- 1 root root 0 Jul 1303:58 dc02.add.txt [root@11ddcf53de8cdataVolumeContainer2]#

[root@atguigu /]# docker ps

[root@atguigu /]#

里面添加了以后,会不会又影响一和二呢?那么这个时候我们 Docker touch 既达到了继承,又达到了共享和传递数据相关的目的,这样 docker 容器会非常的强大,父到子子到父,可以互相传递

  • 回到 dc01 可以看到02/03各自添加的都能共享了
  • 删除 dc01,dc02 修改后 dc03 可否访问

[root@atguigu/# docker attache dc02

docker: 'attache’is not a docker command.

See'docker—help’

[root@atguigu /]# docker attach dc02

[root@9784bd77d033dataVolumeContainer2]#ll

total 0

-rw-r--r- 1 root root 0 Jul 13 03:55 dc01_addtxt

rw-r root root 0 Jul 13 03:58 dc02_addtxt

rw-r pot root 0 Jul 13 03:58 dc03_add.txt

root 033 dataVolumeContainer2]#

删除 dc02 后 dc03 可否访问

大家都知道2和3继承1

[root@atguigu /]#dockerattach dc02

[root@9784bd77d033 dataVolumeContainer2]# pwd dataVolumeContainer2

[root@9784bd77d033 dataVolumeContainer2]#ll

total 0

-rw-r--r--. 1 root root 0 Jul 1303:55 dc01addtxt

rw-r--r--. 1 root root 0 Jul 1303:58 dc02_addtxt

rw-r--r--. 1 root root 0 Jul 1303:58 dc03addtxt

[root@9784bd77d033dataVolumeContainer2]#dc02_update.txt

bash: dc02_updatetxt: command not found

[root@970 77d033 dataVolumeContainer2# touch dc02_upd

现在2没有受到影响,不用验证单也不会受到影响。但是问题是我二和三都几乘于一,现在没有1在二上面修改啦。

新建 dc04继承 dc03后再删除 dc03

[root@atguigu /]# docker attach dc03[root@11ddcf53de8cdataVolumeContainer2]#pwd dataVolumeContainer2

[root@11ddcf53de8cdataVolumeContainer2]#ll

total 0

image.png

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

相关实践学习
DataV Board用户界面概览
本实验带领用户熟悉DataV Board这款可视化产品的用户界面
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
相关文章
|
9天前
|
Kubernetes 监控 开发者
掌握容器化:Docker与Kubernetes的最佳实践
【10月更文挑战第26天】本文深入探讨了Docker和Kubernetes的最佳实践,涵盖Dockerfile优化、数据卷管理、网络配置、Pod设计、服务发现与负载均衡、声明式更新等内容。同时介绍了容器化现有应用、自动化部署、监控与日志等开发技巧,以及Docker Compose和Helm等实用工具。旨在帮助开发者提高开发效率和系统稳定性,构建现代、高效、可扩展的应用。
|
5天前
|
关系型数据库 MySQL API
|
5天前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
1天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
1天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
1天前
|
关系型数据库 数据管理 应用服务中间件
【赵渝强老师】Docker的数据持久化
在生产环境中使用Docker时,为了实现数据的持久化和共享,可以通过数据卷(Data Volumes)和数据卷容器(Data Volume Containers)两种方式来管理数据。数据卷是一个独立于容器的挂载目录,可以跨多个容器共享和重用。数据卷容器则是一种特殊容器,用于维护数据卷,便于数据迁移和共享。本文通过示例详细介绍了这两种方法的使用步骤。
|
7天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
39 1
|
1天前
|
NoSQL Redis Docker
【赵渝强老师】使用Docker Compose管理容器
Docker Compose 通过 YAML 文件管理多个容器,简化复杂系统的部署和管理。本文介绍了 Docker Compose 的基本概念,并通过一个包含 Redis DB 和 Python Web 模块的示例,展示了如何使用 Docker Compose 部署和管理多容器应用。手动部署和 Docker Compose 部署的对比突显了 Docker Compose 在系统复杂度增加时的优势。
|
1天前
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
9 0
|
1天前
|
数据中心 开发者 Docker
理解并实践Docker容器化技术
理解并实践Docker容器化技术
下一篇
无影云桌面