Docker数据卷管理&资源控制

数据卷管理

docker分层文件系统 :性能差,生命周期与容器相同

docker数据卷 :mount到主机,绕开分层文件系统 和主机次哦按性能相同,容器删除后依然保留 限制本地磁盘,不能随容器迁移

bind mount

将主机的目录或者文件mount到容器里
使用直观高效,易于理解
如果一方文件不存在,会新建

数据卷挂载

格式<host path>:<container path>
docker run -d --name web -v /opt/web:/usr/share/nginx/html nginx
docker exec web mount
df
vim /opt/web/index.html
或者
docker exec -it web bash进入交互界面
vim /usr/share/nginx/html/index.html

这里nginx容器是个应用容器,无法进入交互界面,
而ubuntu容器是个底层的系统容器,运行的是个shell

设置只读权限

docker run -d --name web -v /opt/data1:/data1 -v /opt/data2:/data2:ro nginx
docker run -d --name web -v /etc/yum.repos.d/rhel7.5.repo:/etc/yum.repos.d/rhel7.5.repo:ro rhel7 bash 也可以挂载yum源
	yum repolist

data2在宿主机可以创建文件,但是在容器中不行

docker manager volume

bind mount必须指定host的文件系统,限制了移植性
docker manager volume自动为容器创建数据卷,不需要指定mount源

docker run -d --name web -v /opt/data1 nginx
docker ps -a
docker inspect  

docker run -d --name web -v data1:/data1 nginx    指定自动生成的目录名称
docker ps -a
docker inspect
docker volume ls
docker volume prune  删除没有被容器使用的卷

docker volume create web 
docker run -d --name web -v web:/usr/share/nginx/html nginx  会发现web中有复制过来的文件
ls /var/lib/docker/volumes/web/_data

如果挂载时指向容器内已有的目录,原有的数据会被复制到volume中
1.docker 为容器提供了两种存储资源:数据层和data volume
2.数据层包括镜像层和容器层,由storage driver管理
3.data volume有两种类型:bind mount 和docker managed volume
4.bind mount 可实现容器与host之间,容器与容器之间共享数据
5.volume container 是一种具有更好移植性的容器间数据共享方案,特别是volume container

不同点 bind mount docker managed
volume位置 可任意指定 /var/lib/docker/volumes…
对已有mount point影响 隐藏并替换为volume 原有数据复制到volume
是否支持单个文件 支持 不支持只能是目录
权限控制 可设置为只读,默认为读写权限 无控制, 均为读写
移植性 移植性弱 与host path绑定 移植性强 无须指定host目录

卷插件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值