Docker容器数据卷[4]

摘要:
然而,我们希望Docker容器生成的数据可以在持久容器之间共享。因此,Docker在删除容器时不会删除附加到容器的数据卷。数据卷可以在容器之间共享或重用。数据量的更改可以直接生效。数据卷中的更改不会包含在镜像更新中。数据卷容器的生命周期持续到没有容器使用它(--volumesrom)摘要:

 是什么

先来看看Docker的理念:

  • 将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求希望是持久化的
  • 容器之间希望有可能共享数据

Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来, 那么当容器删除后,数据自然也就没有了。

为了能保存数据在docker中我们使用

一句话:有点类似我们Redis里面的RDB和AOF

能干嘛

卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union FileSystem提供一些用于持续存储或共享数据的特性:

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

特点:

  1. 数据卷可在容器之间共享或重用数据
  2. 卷中的更改可以直接生效
  3. 数据卷中的更改不会包含在镜像的更新中
  4. 数据卷容器的生命周期一直持续到没有容器使用它为止 (--volumes from

总结:

  • 容器数据的持久化
  • 容器间继承+共享数据

数据卷

  • 直接命令添加

docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名  // 带命令,指定访问权限, ro: read only

  查看数据卷是否挂载成功:

docker inspect 容器ID

        Docker容器数据卷[4]第1张Docker容器数据卷[4]第2张

  • 使用DockerFile添加

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

          可在Dockerfile中使用VOLUME指令来给镜像添加一个或多个数据卷

          Docker容器数据卷[4]第3张

 DockerFile 构建

 DockerFile的编写可以参考 DockerHub 中各镜像的DockerFile文件,如tomcat:https://github.com/docker-library/tomcat/blob/300ac03f4696c761a81fa10afbb893f3368061de/8.5/jdk8/openjdk-buster/Dockerfile

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

build后生成镜像

Docker容器数据卷[4]第4张

 获得一个新镜像zzyy/centos

run容器

Docker容器数据卷[4]第5张

通过上述步骤,容器内的卷目录地址已经知道,对应的主机目录在哪

 Docker容器数据卷[4]第6张

备注:

Docker挂载主机目录Docker访问出现cannot open directory,Permission denied

解决办法:在挂载目录后多加一个--privileged=true参数即可

数据卷容器

  • 是什么

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

  • 容器间传递共享(--volumes -from)

docker run -it --name dco2 --volumes-from dc01 zzyy/cenos   // dc01是先创建的容器,dco2继承dc01,实现数据共享

数据卷由父容器(dc01)挂载,如果在dc02,dc03挂载dc01后,删除dc01,数据卷仍然会有效。

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

免责声明:文章转载自《Docker容器数据卷[4]》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇oracle Database Link探索MVP(Model-View-Presenter)设计模式在SharePoint平台下的实现下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux(三)—— 项目部署环境搭建

项目部署环境搭建 目录 项目部署环境搭建 一、linux上网 二、rpm包管理 1、光盘挂载 2、安装卸载rpm包 3、查询是否安装 4、查看软件包 5、互相依赖关系的软件包 三、yum包管理 1、使用aliyun的yum源 2、使用yum安装软件 3、查看yum源的软件包 4、删除软件包 5、优化yum源 (1)使用本地源 (2)局域网y...

mysql集群搭建 (PXC)

一、PXC介绍 1.1 关于PXC PXC(Percona XtraDB Cluster)是MySQL数据库的一种高可用集群策略,与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步。而且节点与节点之间,他们相互的关系是对等的。PXC 最关注的是数据的一致性,对待事物的行为时,要么在所有节...

python——pandas初体验

一、pandas简介 Pandas是面向数据分析场景设计的Python开源软件工具包,其名字来自英文词组panel data,作为经济界的术语指多维结构化的数据集。从命名来看,Pandas特别适合处理序列数据、表格数据等具有良好结构的数据。在软件使用上,由于Pandsa是基于BSD开源软件许可证发布的,能够很方便地在学习、办公和工业应用等场合使用。 二、p...

数据可视化之Processing【1】

说Processing之前得先说一下数据可视化。 数据可视化--顾名思义。是关于数据之视觉表现形式的研究,将数据用其它方式表现出来,使之更直观, 更清晰,更easy分析和处理。常见的表达方式如word中使用广泛的直方图、树状图、折线图、饼状图等。 数据可视化技术的基本思想是将数据库中每个数据项作为单个图元元素表示,大量的数据集构成数据 图像。同一时候将...

centos7配置国内yum源

文章目录 1、什么是yum仓库? 2、yum仓库配置 2.1、阿里镜像仓库配置 2.1.1、配置步骤 2.1.2、epel源 安装和配置 2.1.3、查看yum源 2.2、配置 清华大学镜像仓库 1、什么是yum仓库? yum仓库就是使用yum命令下载软件的镜像地址。 我们通常使用 yum install 命令来在线安装 linu...

网页分页数据的三种抓取方式

     相信所有个人网站的站长都有抓取别人数据的经历吧,目前抓取别人网站数据的方式无非两种方式:      一、使用第三方工具,其中最著名的是火车头采集器,在此不做介绍。      二、自己写程序抓取,这种方式要求站长自己写程序,可能对对站长的开发能力有所要求了。      本人起初也曾试着用第三方的工具抓取我所需要的数据,由于网上的流行的第三方工具不...