Docker持久化技术之数据卷

一 删除容器命令
docker rm ID/NAME
即删除创建的容器。
可以看到,id为c1的容器被删除了。
而且可以发现,本地的/var/lib/docker/containers目录下的对应目录也被删除了。
下面讨论Docker的数据持久化。

二 数据卷的创建
官方的解释是:数据卷是一个可供一个或多个容器使用的特殊目录,它绕过了UFS。
UFS即是UNIX文件系统的简称。
1 数据卷可以在容器之间共享和重用
2 对数据卷的修改会立马生效
3 对数据卷的更新,不会影响镜像
4 数据卷默认会一直存在,即使容器被删除
数据卷的使用,类似于Linux下对目录或文件进行mount操作。
如创建容器时使用参数v指定一个目录。
[root@localhost ~]# docker run -i -t --name DataTest -v /root/dockerdata/container_data:/data docker/whalesay /bin/bash
上面的实践表明,在容器内的修改和容器外文件绑定。
docker inspect DataTest
这里"DataTest"即是刚才创建容器指定的名称。
上面返回的json格式的容器信息,可以看到Mounts下正是我们创建时指定的目录。
这个功能十分方便,用户可以放置一些程序到本地目录中,然后就可以在容器内运行和使用。
注意本地目录的路径必须是绝对路径,如果目录不存在,Docker会自动创建。
Docker挂载数据卷的默认权限是读写,用户也可以通过ro指定为只读。
docker run -i -t --name DataTest -v /root/dockerdata/container_data:/data:ro docker/whalesay /bin/bash

三 数据卷的数据共享
通过下面的实践,我们可以看到数据卷如何在两个容器以及宿主机之间的共享。

四 容器和数据卷的关系
通过下面实践,我们可以看出容器退出后,数据卷的一些特征。
退出容器DataTest2,并删除它,可以发现,在容器DataTest和宿主机本地之前的更改都在。
所以,数据卷的生命周期独立于容器,Docker不会在容器被删除后自动删除数据卷,同时也不存在垃圾回收这样的机制来处理没有任何容器引用的数据卷。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值