是docker storage driver的永久存储

时间:2020-03-06 11:50:47

标签: docker kubernetes openshift persistent-storage device-mapper

我是Docker的新手,我试图了解Docker中的持久性存储。

管理应用程序数据>将数据存储在容器中>关于存储驱动程序

https://docs.docker.com/storage/storagedriver/
存储驱动程序允许 您可以在容器的可写层中创建数据。文件 删除容器后将不会保留,并且读取和 写入速度低于本机文件系统性能。

但稍后在管理应用程序数据>将数据存储在容器中>使用Device Mapper存储驱动程序 https://docs.docker.com/storage/storagedriver/device-mapper-driver/
他们使用direct-lvm创建可保留数据的逻辑卷

我的问题:使用存储驱动程序的意思是:

  1. 容器生成的数据是短暂的?
  2. 如果我们使用逻辑,则容器生成的数据是短暂的 环回设备上的音量?
  3. 如果我们使用逻辑,则容器生成的数据是持久性的 块设备上的音量?

1 个答案:

答案 0 :(得分:1)

从本质上讲,存储驱动程序配置是一个安装时设置,一旦正确设置,它就不会真正相关。特别是如果您运行docker info并且说它正在使用overlay2驱动程序,我建议您关闭此特定的浏览器选项卡,而不更改任何内容。

在您引用的段落中,带走的重要一点是,一旦删除容器,您在容器内创建的文件(不在卷目录中)将丢失,这些文件不在卷目录中。您使用什么基础存储驱动程序都没有关系。容器文件系统,命名卷和绑定挂载之间的性能差异几乎无关紧要(除非在MacOS主机上绑定挂载非常慢)。

存储驱动程序保留的数据包括临时容器文件系统(在删除容器之前,它们一直保留)和基础图像数据。它不包括命名的Docker卷或其他绑定安装的主机目录。

如果使用devicemapper,则可能会看到是否可以将主机升级到可以使用overlay2驱动程序的较新的Linux发行版。特别是避免了devicemapper驱动程序的固定空间限制。如果必须使用devicemapper,通常的看法是使用专用分区比使用文件更好。但是,正如我前面所说的,这实际上是安装时配置,与您的应用程序或docker run命令无关。