一、数据卷的作用:
容器运行的时候数据都是在内存中的,当容器关闭的时候就销毁了,有些时候我们需要用到这些数据,即使容器关闭了也还要用,所以就需要做数据持久化,类似于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会指定给默认路径
在宿主机中查看
在宿主机中修改,然后到容器中查看