开发者学堂课程【Docker 快速入门:Docker 容器数据卷介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/616/detail/9401
Docker 容器数据卷介绍
内容介绍
一、简介
二、作用
三、数据卷
四、容器数据卷
一、简介
容器就是镜像和容器的关系,容器数据卷中的数据和卷是一个诉求,假设现在在docker 里面的数据,可能对于一部分的运算结果或日志信息,需要把长久的保存下来,也记持久化,相当于容器数据卷做的事,就是要运行产生的数据将持久化。
当运行完一个容器,可能要关闭后,容器上的数据也就没了。但是部分内容是希望能够把保存下来,能够做到持久化。不能说是容器关了,数据就没了。
就像内存一样,在运行中的数据是在内存中,但是在内存中的数据,希望有时候可以把保存到硬盘上。关闭电脑后,只要一断电内存中的数据就没了,那么这些数据很重要,想把做持久化,所以说把保存进数据库或者保存进硬盘。那么一样,在docker 里面的数据也就是在容器内的数据,有时候就像是在内存中的数据。运行的时候一关闭容器就没有了。
在关闭容器的时候,希望这个容器不用了。但是容器内的数据部分重要的数据需要做持久化,那么就需要用容器数据卷来给保存。
二、作用
容器数据化主要作用做持久化以及容器见继承和共享数据。
Docker 的理念:
1.现在运行的代码与运行的环境打包成容器,那么容器运行可能对数据要是持久化的。
2.容器之间希望可以共享数据,机器是源代码的源头,一个人拿活动硬盘拷贝了以后,下一个人也可以活动硬盘再拷贝,就像是星星之火可以燎原,那么在多个集装箱,还可以希望互通有无,希望容器之间共享数据。
那么都知道容器产生的数据,如果不通过 commit 生成新的镜像,可能某些数据就没了。这个时候如果要 commit,可以作为镜像那部分保存下来,但是有时候不用commit,再把这个容器删了以后,数据自然就没了,为了能够保存数据做持久化,需要用到这种概念以及容器卷。
有点类似类比的关系,有一种分布式的内存数据库,这个内存数据库能够带来数据持久化,也就是的 adp 和 aof,那么所以说容器数据卷主要是负责数据共享和数据持久化的工作。
三、数据卷
卷就是目录或文件,存在于一个或多个容器中,由 docker 挂载到容器,但不属于联合文件系统,因此能够绕过 Union File System 提供一些用于持续存储或共享数据的特性:
卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此 Docker 不会在容器删除时删除其挂载的数据卷
特点:
1:数据卷可在容器之间共享或重用数据
2:卷中的更改可以直接生效
3:数据卷中的更改不会包含在镜像的更新中
4:数据卷的生命周期一直持续到没有容器使用它为止
四、容器数据卷
容器数据卷,之前有一个 docker copy 命令,这就是从容器内拷贝文件到主机,拷资料时讲课的笔记本是源头,活动硬盘做持久化的东西。否则这机器总有要关机的一天,那么现在录的视频就没了就亏了。
Docker copy 是融资内的路径到目的主机路径,完成了从容器拷贝回主机,比如说活动硬盘上有一部电影,刚好下载好了,活动硬盘上可以考回到的主机上面或者笔记本上面,那么这时单向的完成了容器到主机。那么反过来,从主机到容器,主机和容器之间应该就像是活动外置的活动硬盘插上笔记本电脑一样可以互通有无,两个设备都可以共享数据。
容器卷也可以完成主机到容器,容器到主机之间的数据共享,这个就是容器数据卷的理念。理念就是持久化和数据共享。