一、容器数据卷的介绍
- Docker可以将开发的应用和运行的环境一起打包形成容器运行,Docker容器产生的数据,如果不通过Commit生成一个新的镜像,使得这些数据成为镜像的一部分保存下来,那当容器删除时,数据自然也就没有了(相当于别人删除跑路),为了能够保存数据在Docker中我们使用数据卷。
- 卷就是目录和文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过union file system提供一些用于持续存储或共享数据的特性。(将docker容器内的数据保存进宿主机的磁盘中)
- 卷的设计目的就是数据持久化(类似于redis中的rdb和aof文件),完全独立于容器的生命周期,因此docker不会在容器删除时删除其挂载的容器卷。
- 数据卷的特点:
数据卷可在容器之间共享或重用数据
数据卷的更改会直接生效
数据卷的更改不会包含到镜像的更新中
数据卷的生命周期一直持续到没有容器使用它为止
二、数据卷的挂载
(1)修改镜像名和版本标签
(2) 挂载数据卷
(3)查看挂载信息
(4) 指定宿主机挂载目录
(5)查看名为text的Nginx容器的状态和挂载数据
(6)开启centos和Nginx两个终端
通过示例观察数据卷共享机制,会在宿主机与容器端之间多次切换,建议开启两个终端,
(7)验证挂载成功
分别查看宿主机和容器的根目录下的文件
#容器根目录多了一个app的目录
#宿主机下新建一个web目录
#在宿主机web目录下创建a.txt和b.txt文件对应的容器挂载目录中会出现相应文件
#在容器挂载数据下创建c.txt对