卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:
可以做数据的持久化。

特点:
1:数据卷可在容器和宿主之间共享或重用数据
2:卷中的更改可以直接生效
3:数据卷中的更改不会包含在镜像的更新中
4:数据卷的生命周期一直持续到没有容器使用它为止

使用

docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
例如存在一个centos容器,将容器中的文件夹与宿主机进行数据共享
docker run -it -v /hostDataVolume:/containerDataVolume centos
这样宿主机的/hostDataVolume文件夹和centos容器/containerDataVolume文件夹实现了数据共享。
对文件夹里面的数据修改都是同步的,容器关闭或删除都不会误伤宿主机的共享文件。
查看是否挂载成功:docker inspect 容器id
image.png

数据卷容器

命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。
新建一个容器并挂载数据卷,
docker run -it —name dc01 -v /hostDataVolume:/containerDataVolume centos
新建2个容器继承自dc01,
docker run -it —name dc02 —volumes-from dc01 centos
docker run -it —name dc03 —volumes-from dc01 centos
这样3个容器间/containerDataVolume是数据共享的,无论删除哪个容器,其余容器还是持续共享,例如dc01被删除,dc02和dc03数据卷还是共享的。