数据卷容器细节研究

一 数据卷容器问题一:启动状态和级联
先停掉data1容器,然后再用data1做数据卷容器来挂载到data3
可以看出,data也被成功挂载到了data3里,上面的操作至少可以说明两点:
使用–volumes-from参数所挂载数据卷的容器自己并不需要保持在运行状态。
已经挂载了数据卷的容器可以级联挂载数据卷。

二 数据卷容器问题二:同时挂载数据卷容器
下面在讨论一种情况,现在在创建一个容器,挂载目录为data4。
docker run -i -t -v /data4 --name data4 docker/whalesay
如果我用两个–volumes-from来分别指定data和data4作为数据卷容器。
docker run -i -t --volumes-from data --volumes-from data4 --name data5 docker/whalesay
可以看出,新创建的data5中存在data和data4中挂载的目录。
这说明:可以使用超过一个的–volumes-from参数来指定从多个容器挂载不同的数据卷。

三 数据卷容器问题三:被挂载的数据卷容器同名问题
可是,如果我们这样创建容器
docker run -i -t --volumes-from data --volumes-from data1 --name data6 docker/whalesay
可以发现,只有一个data目录,这说明虽然指定了不同的容器卷,可是最终指向的是同一个,如果进入data1中,创建一个data1.txt的文件.在data2容器中也是可以看到的。
上面的情况是通过多个–volumes-from来挂载有级联关系的容器,最终新建的容器只有一个目录。
如果挂载没有级联关系的两个容器,可是被挂载的两个容器的挂载目录重名,会是什么情况?
先新建一个名为data7挂载目录为data的容器
sudo docker run -i -t -v /data --name data7 docker/whalesay
然后在data下新建一个data7.txt。
这是,容器data和data7是分别挂载了data目录的不同两个容器。
现在再新建一个容器data8,并把data和data7作为它的数据卷容器
docker run -i -t --volumes-from data --volumes-from data7 --name data8 docker/whalesay
可是发现只有一个data目录,并且里面只有data7.txt一个文件。
然后,我创建容器data9。
sudo docker run -i -t --volumes-from data7 --volumes-from data --name data9 docker/whalesay
发现也是只有一个data目录,可是内容确是容器data的内容,在里面新建一个data9.txt,在容器data里也是可以看到的。
由此可以得知,如果使用–volumes-from挂载多个数据卷容器时,如果对应的容器挂载的目录是相同的,那么只有最后一个–volumes-from指定的数据卷容器会挂载成功。
整个过程实践结果如下。

四 数据卷容器的删除
容器使用完成后,为了节约资源难免会被删除,那么数据卷容器删除后,所创建的文件是否还在?
先data9中创建了一个文件data9.txt,同时data9又挂载容器data(没有挂data7),现在删除容器data9。
docker rm data9
在容器data中可以发现,在容器data9中创建的文件data9.txt仍然是存在的。
整个实践过程如下:
说明数据卷容器也是Docker容器数据持久化的一种方式,正是这个特性,可以让用户方便的在容器之间升级和移动数据卷。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值