docker:八、持久化存储

存储数据的2中方式

1. 由storage driver 管理镜像层和容器层,实现多层数据的堆叠并为用户提供单一的合并后的统一视图。(不保存数据)
2. data volume(保存数据,提供独立于容器外的持久化存储)

storage driver

由于多层的镜像层是只读的,最上层的容器层是可读写。
1. 新数据放在最上面的容器层
2. 修改现有数据,从镜像层拷贝,修改后放到容器层
3. 如果多层中有相同的文件,用户只看到上面那层的文件

查看信息:docker info
Ubuntu 默认aufs ,底层文件系统是extfs,各层数据放在/var/lib/docker/aufs

data volume

volume 持久化数据,本质上是docker host文件系统中的目录或文件mount到容器中。即相当于挂载一个U盘到容器中,数据可以永久保存在U盘(使用它的容器已经销毁),能够存储的数据的大小取决于U盘的大小

挂载方式

1. bind mount
将host上已存在的文件或目录mount到容器
实例:
docker run -d -v <host path>:<container path>:ro
设置权限:默认可读可写,可设置为可读(容器无法对数据修改)
注意:
挂载文件时,必须保证文件存在,否则当做目录
2. docker managed volume
不需要指明路径,只要指明mount point
实例:
docker run -d  -v <container path>
注意:
每次容器申请mount docker managed volume,docker都会在var/lib/docker/volumes随机生成一个目录,再把container 的指定目录挂在到这里,如果指定目录已存在,则将数据复制到随机目录
查看具体挂载点:docker inspect
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值