数据卷作用
docker默认容器关闭后数据就没了,如果不通过docker commit生成新的进行数据就会丢失。数据卷的作用就是将docker容器运行产生的数据持久化。
数据卷特点
卷就是目录或文件,存在于一个或者多个容器中,由docker挂载到容器,但不属于联合文件系统,所以能够绕过Union File System提供一些用于持续存储或共享数据的特性。卷的设计目的就是数据的持久化,完全独立于容器的生命周期。因此Docker不会在容器删除时删除其挂载的数据卷。
1)数据卷可以在容器之间共享或者重用数据
2)卷中的更改可以直接生效
3)数据卷中的更改不会包含在镜像的更新中
4)数据卷的生命周期一直持续到没有容器使用它为止。
实战
不带权限
docker run -it -v /myDataVolume:/dataVolumeContainer centos
下面是执行后宿主机目录:多了myDataVolume文件
下面是容器centos中目录,发现多了dataVolumeContainer文件。
后面无论在宿主机还是容器中添加文件修改文件,甚至关闭容器后修改宿主机文件再启动容器,里面的内容也是一致的。这样我们就可以将容器中的数据挂载到宿主机目录。
#查看容器数据卷的信息
docker inspect 17691c200167
带权限
#:ro==readonly
docker run -it -v /myDataVolume:/dataVolumeContainer:ro centos
这边我们在容器中直接创建一个文件结果不可以,修改也不可以。只允许宿主机单项的创建修改文件。但是如果用另一个容器(没有加:ro命令的容器哪怕和另一个加了:ro的容器挂载到宿主机的目录是一样的)是可以添加修改文件的。