首页 > 其他分享 >Docker 学习笔记 - 4

Docker 学习笔记 - 4

时间:2024-01-21 14:11:28浏览次数:28  
标签:容器 centos 宿主机 笔记 学习 镜像 Docker 数据 docker

容器数据卷

1. 容器数据卷
(1) 是什么
容器删除后数据自然也就没有了,所以用卷来保存数据。容器数据卷功能是持久化和数据共享。 卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File Syste提供一些用于持续存储或共享数据的特性。

(2) 容器数据卷的特点
数据卷可以在容器之间共享或重用数据
卷中的更改可以直接生效
数据卷中的更改不会包含在镜像的更新中
数据卷的生命周期一直持续到没有容器使用它为止
2. 容器内添加数据卷
(1) 直接命令添加
docker run -it -v /宿主机绝对路径:/容器内目录[:ro] 镜像名 .:将宿主机的目录和容器内目录绑定,之后对宿主机或容器内相应文件夹的内容添加和修改就是同步的了。容器每次启动后会将数据同步。添加:ro时表示是只读模式,宿主机可以添加和修改文件,但是容器内不可以。

 

docker inspect 容器名:查看数据卷是否挂载成功,其中Volumes里面有绑定的目录

 

 

容器和宿主机之间数据共享

 


容器停止后,宿主机修改数据是否同步

 


如果无权限,则使用docker run -it -v /宿主机绝对路径:/容器内目录 --privileged=true 镜像名 .即可

(2) dockerFile添加
dockerFile是镜像的描述文件

根目录下新建mydocker文件夹并进入

VOLUME["/dataVolumeContainer","/dataVolumeContainer2","/dataVolumeContainer3"]:可在dockerFile中能使用volume指令来给镜像添加一个或多个数据卷

vi dockerfile:File构建

FROM centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD echo "finished,--------success1"
CMD /bin/bash

docker build -f /mydocker/dockerfile -t zza/centos:build后生成镜像,获得一个新镜像zza/centos

 


docker run -it zza/centos:运行容器,容器内自带两个容器数据卷,对应的宿主机的目录默认,可以通过docker inspect查看

3. 数据卷容器
(1) 是什么
命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。

(2) 容器间传递共享
先启动一个父容器:docker run -it --name dc01 zza/centos

dc02继承自dc01:docker run -it --name dc02 --volumes-from dc01 zza/centos


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

 

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

删除dc02后dc03可否访问

新建dc04继承dc03后再删除dc03

结论:

父子容器之间数据共享,删除父容器后,修改某一子容器会响应其兄弟元素
容器之间配置信息的传递,数据卷生命周期一直持续到没有容器使用它为止

标签:容器,centos,宿主机,笔记,学习,镜像,Docker,数据,docker
From: https://www.cnblogs.com/otf-notes/p/17968236

相关文章

  • 【Dynamics365-Finance&Operations学习】Chain of Command Feature使用方法与使用场景
    前提微软在PlatformUpdate9之后引入了ChainofCommand(CoC),通过支持像Public和Protected类型的拓展,来为技术顾问和编程人员减少过度分层(overlayering)。在PU15(Dynamic365的某一版本)中,在Form、Table和Class的CoC已经被实现,但在表单数据源(FormDataSource)和表单数据字段(Formdat......
  • 寒假学习(11)
    今天我计划学习一些基本函数的功能及它们的使用方法,由于网上大多没有汇总,碰巧又赶上最近学的数据处理,所以我根据需要自己整理了几个可能会用到的关于数据的函数。Python内置函数:len():用于获取对象的长度或元素个数。string="hello"length=len(string)print(length)......
  • C#学习笔记-类与名称空间
    1.类和对象  类是一个数据结构,将字段和方法组合在一个单元中。类为动态创建实例提供了定义,类的实例化称为对象。C#中的类同样支持继承和多态。C#是完全面向对象的语言,程序本身就是一个类。  如下所示,程序的入口点Main()方法包含在Program类中(与C++不同),类的实例使用new运......
  • 寒假学习(10)
    接下来要做的是任务模块,我们计划页面上面一块为轮播图组成的轮播广告,下面为任务条目,不过今天先继续学习python知识,以免跟不上spark的学习。今天主要学到为函数和模块。函数:在Python中,函数是一段可重复使用的代码块,可以接受参数并返回结果。函数的定义以def关键字开始,后面跟着......
  • 【电商数仓6.0】笔记1
    采集项目&数据仓库项目(是企业中数据管理平台中的两个核心管理模块)采集项目:数据采集,传输为主(flume,kafka,datax,maxwell)数据仓库:以计算为主,同时存储数据(mysql,HDFS,Spark,Flink,MR,Hive) 数据库&数据仓库数据库database来源:企业中基础核心的业务数据存储:查找数......
  • 【计网笔记】计算机网络的类别
    计算机网络的类别计算机网络的定义计算机网络的精确定义并未统一。关于计算机网络的较好的定义是这样的[PETE11]:计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同......
  • 【docker-compose】Redis安装教程
    仅供学习参考,请勿轻易在生产环境使用0.文件目录下面的文件按照这个目录层级放置,首先创建/docker/redis文件夹,/docker/redis对应下边图中REDIS。1.创建目录mkdir-p/docker/redis/conf/docker/redis/data/docker/redis/logschmod-R777/docker/redis/conf/doc......
  • Arthas(阿尔萨斯)笔记
    1、下载Arthascurl-Ohttps://arthas.aliyun.com/arthas-boot.jar或wgethttps://arthas.aliyun.com/arthas-boot.jar2、找到要监控java程序的进程PIDps-ef|grepjava或top命令找到要监控的进程号3、启动Arthas监听该进程java-jararthas-boot.jar${pid}或者......
  • 前端学习-HTML/CSS刷题笔记03
    1布局单列布局单列布局是将头部、内容区、底部在页面上垂直排列,是非常实用的一种布局方式。主要对三个区域的宽度进行统一,然后通过设置自动外边距进行居中。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X......
  • (坚持每天写算法)算法复习与学习part1基础算法part1-11——差分
    差分和前缀和是有联系的。首先给定一个原数组a:a[1],a[2],a[3],,,,,,a[n];然后我们构造一个数组b:b[1],b[2],b[3],,,,,,b[i];使得a[i]=b[1]+b[2]+b[3]+,,,,,,+b[i]也就是说,a数组是b数组的前缀和数组,反过来我们把b数组叫做a数组的差分数......