docker存储资源简介

原创 浪子丶刘少  2019-06-12 09:20  阅读 1,450 次 评论 0 条 百度未收录
Docker两种存放数据的资源:
  1. 由 storage driver 管理的镜像层和容器层。
  2. Data Volume。

一、storage driver

  • 实现了多层数据的堆叠并为用户提供一个单一的合并之后的统一视图
  • Docker 支持多种 storage driver,有 AUFS、Device Mapper、Btrfs、OverlayFS、VFS 和 ZFS。
  • 分层结构最大的特性是 Copy-on-Write
  • 一般用来保存无状态的docker容器,如busybox

二、Data Volume

  • 质上是 Docker Host 文件系统中的目录或文件,能够直接被 mount 到容器的文件系统中
volume特点:
  1. Data Volume 是目录或文件,而非没有格式化的磁盘(块设备)。
  2. 容器可以读写 volume 中的数据。
  3. volume 数据可以被永久的保存,即使使用它的容器已经销毁。
两种类型的 volume:
1.bind mount
注:bind mount 是将 host 上已存在的目录或文件 mount 到容器。
挂载volime格式:
-v 的格式为 <host path>:<container path>:权限 例: docker run -d -p 80:80 -v ~/htdocs:/usr/local/apache2/htdocs:ro httpd
2.docker managed volume
不需要指定 mount 源,指明 mount point 就行了 例: docker run -d -p 80:80 -v /usr/local/apache2/htdocs httpd 注:通过 -v 告诉 docker 需要一个 data volume,并将其 mount 到 /usr/local/apache2/htdocs。 执行 docker inspect 命令可查看映射目录 docker 都会在/var/lib/docker/volumes 下生成一个目录(例子中是 "/var/lib/docker/volumes/f4a0a10080/_data ),这个目录就是 mount 源。
两种 data volume 的原理和基本使用方法对比:
  1. 相同点:两者都是 host 文件系统中的某个路径。
  2. 不同点:
bind mount
docker managed volume
volume 位置
可任意指定
/var/lib/docker/volumes/...
对已有mount point 影响
隐藏并替换为 volume
原有数据复制到 volume
是否支持单个文件
支持
不支持,只能是目录
权限控制
可设置为只读,默认为读写权限
无控制,均为读写权限
移植性
移植性弱,与 host path 绑定
移植性强,无需指定 host 目录

本文地址:https://www.ezliushao.com/209.html
加入我们:请加入刘少技术博客交流群:扫描二维码刘少技术博客的QQ交流群 | 浪子丶刘少 QQ:1150110267(注:微信暂停添加好友)
版权声明:本文为原创文章,版权归 浪子丶刘少 所有,欢迎分享本文,转载请保留出处!

发表评论


表情