什么是数据卷容器
当我们在使用docker容器的时候,会产生一系列的数据文件,这些数据文件在我们关闭docker容器时是会消失的,但是其中产生的部分内容我们是希望能够把它给保存起来另作用途的,Docker将应用与运行环境打包成容器发布,我们希望在运行过程钟产生的部分数据是可以持久化的的,而且容器之间我们希望能够实现数据共享。
通俗地来说,docker容器数据卷可以看成使我们生活中常用的u盘,它存在于一个或多个的容器中,由docker挂载到容器,但不属于联合文件系统,Docker不会在容器删除时删除其挂载的数据卷。
特点:
1:数据卷可以在容器之间共享或重用数据
2:数据卷中的更改可以直接生效
3:数据卷中的更改不会包含在镜像的更新中
4:数据卷的生命周期一直持续到没有容器使用它为止
以上来源:https://blog.csdn.net/weixin_40322495/article/details/84957433
前提:有一个镜像leyton/centos,并且有两个数据卷,如图所示:
案例:
- 启动一个父容器dc01,在dataVolumeContainer2上新增内容
docker run -it --name dc01 leyton/centos
- dc02、dc02继承dc01,volumes-from命令
docker run -it --name dc02 --volunes-from dc01 leyton/centos
既然要实现数据共享并且继承自dc01,那么dc02应该有dc011创建的文件,看一下
果然有,那么dc02创建的文件在dc01中应该也有才对(数据共享),就不放图了。
继续创建dc03,继承自dc01
docker run -it --name dc03 --volumes-from dc01 leyton/centos
进入dc01看一下,是否实现了共享
这样既实现了继承,又实现了共享
- 删除dc01,修改dc02,dc03可否访问?
docker rm -f dco1
退出交互式但不停止运行
ctrl+p+q
进入dc02的交互式容器
docker attach dc02
- 让dc04继承dc03,删除dc03后是否还可以实现数据共享?


由此可见,是可以实现数据共享的。
总结:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。





