一、是什么
    命名的容器挂载数据卷,其它容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。
    说明:上面的意思说白了就是启动容器A(已有容器数据卷),然后容器B和C挂载A启动,这样ABC之间的数据卷中的数据就都可以共享了。

    二、测试实例
    1、通过我们上篇文章dockerfile创建的镜像 spz/centos。创建容器 doc01,已有容器数据卷/dataVolumeContainer1和/dataVolumeContainer2。
    docker run -it -name doc01 spz/centos
    image.png
    然后我们在doc01机器的dataVolumeContainer2下创建文件do01_add.txt
    image.png
    2、退出doc01机器,启动doc02机器并且继承doc01
    docker run -it —name doc02 —volumes-from doc01 spz/centos
    image.png
    进入doc02的dataVolumeContainer2下面我们看到,里面已经有我们刚才在doc01中建立的dc01_add.txt
    image.png
    然后我们在里面建立属于doc02的文件dc02_add.txt,然后退出该虚拟机
    image.png

    3、创建并启动doc03机器也继承doc01
    docker run -it —name doc03 —volumes-from doc01 spz/centos
    image.png
    进入doc03的dataVolumeContainer2下面我们会发现,虽然doc03是继承doc01,但是我们doc02中创建的dc02_add.txt也在其中,三台机器实现了数据共享
    image.png
    然后我们也建立属于doc03的dc03_add.txt,然后退出doc03
    image.png
    接着我们再次登录至doc01,发现我们在doc02和doc03中建立的文件,我们doc01都能拿到,数据卷容器实现了父传子和子传父,该功能非常强大
    image.png

    4、提问:删除doc01,doc02修改后doc03可否访问?
    image.png
    我们看到,及时doc01挂掉后,我们的doc02中的数据卷没有受到影响
    image.png

    5、提问:既然我们的doc02数据卷正常,那么如果我们在doc01挂掉的情况下,修改doc02中的数据,doc03中是否会更新修改
    image.png
    答案是会更新的。

    结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止
    意思就是只要继承的容器没有全部关闭,数据卷就一直存在