一、docker 存储
1. storage driver
容器由最上面一个可写的容器层,以及若 干只读的镜像层组成,容器的数据就存放 在这些层中。这样的分层结构最大的特性 是 Copy-on-Write:
1.新数据会直接存放在最上面的容器层。
2.修改现有数据会先从镜像层将数据复制 到容器层,修改后的数据直接保存在容器 层中,镜像层保持不变。
3.如果多个层中有命名相同的文件,用户 只能看到最上面那层中的文件。
分层结构使镜像和容器的创建、共享以及分发变得非常高效,而这些都要归功于 Docker storage driver
2.storage driver 选型
Docker 支持多种 storage driver,有 AUFS、Device Mapper、Btrfs、OverlayFS、VFS 和 ZFS。它们都能实现分层的架构,同时又有各自的特性。对于 Docker 用户来说,具体 选择使用哪个 storage driver 是一个难题,因为:
1.没有哪个 driver 能够适应所有的场景。
2.driver 本身在快速发展和迭代。
不过 Docker 官方给出了一个简单的答案:
优先使用 Linux 发行版默认的 storage driver。
二、Data Volume
Data Volume 本质上是 Docker Host 文件系统中的目录或文件,能够直接被 mount 到容 器的文件系统中。Data Volume 有以下特点:
1.Data Volume 是目录或文件,而非没有格式化的磁盘(块设备)。
2.容器可以读写 volume 中的数据。
3.volume 数据可以被永久的保存,即使使用它的容器已经销毁。
2.1 、tmpfs mount
应用限制:
1)tmpfs挂载是临时的,并且仅保留在主机内存中。当容器停止时,将tmpfs删除安装,并且不会 保留写在那里的文件。
2)与卷和绑定装入不同,您无法tmpfs在容器之间共享装载。
2)只有在Linux上运行Docker时才能使用此功能
# docker run -d -it --name tmptest --mount type=tmpfs,dst=/app nginx
# docker run -d -it --name tmptest1 --mount type=tmpfs,dst=/app,tmpfsmode=1660 nginx
2.2 Data Volume
原文:https://www.cnblogs.com/Robi-9662/p/10651643.html