一、数据卷的作用:

容器运行的时候数据都是在内存中的,当容器关闭的时候就销毁了,有些时候我们需要用到这些数据,即使容器关闭了也还要用,所以就需要做数据持久化,类似于Redis的rdb和aof文件

1:数据卷可在容器之间共享或重用数据

2:卷中的更改可以直接生效

3:数据卷中的更改不会包含在镜像的更新中

4:数据卷的生命周期一致持续到没有容器使用它为止

二、在容器内添加数据卷有两种方式:

1、直接命令添加

2、DockerFile添加

1、命令添加:

docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名(不管是宿主机还是容器内,当路径不存在时,将自动创建)

查看数据是否挂载成功

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

如,在宿主机建一个名为test.txt的文件,在容器中使用

在容器中编辑一下test.txt文件,再到宿主机中打开,看是否产生变化

容器停止运行后,宿主机修改共享文件,容器再启动,共享文件仍然生效

修改宿主机的共享文件

启动容器,并进入容器查看对应的共享文件

以只读模式运行:docker run -it -v /宿主机绝对路径目录:/容器内目录 ro 镜像名

此时,只能在宿主机中单向对共享文件进行修改,在容器中不可新增文件,不可修改文件

2、DockerFile添加

2.1、新加一个文件夹并进入

2.2、编写一个DockerFile文件

2.3、build生成一个新的容器镜像

运行容器看一下,此时容器已经自带共享文件夹

在容器的共享文件夹中创建文件,然后在宿主机中查看

在容器的共享文件夹中创建文件

查看共享文件夹关系,由于没有手动指定宿主机的路径,docker会指定给默认路径

在宿主机中查看

在宿主机中修改,然后到容器中查看