我是Docker的新手,我试图了解Docker中的持久性存储。
管理应用程序数据>将数据存储在容器中>关于存储驱动程序
https://docs.docker.com/storage/storagedriver/
存储驱动程序允许 您可以在容器的可写层中创建数据。文件 删除容器后将不会保留,并且读取和 写入速度低于本机文件系统性能。
但稍后在管理应用程序数据>将数据存储在容器中>使用Device Mapper存储驱动程序
https://docs.docker.com/storage/storagedriver/device-mapper-driver/
他们使用direct-lvm创建可保留数据的逻辑卷
我的问题:使用存储驱动程序的意思是:
答案 0 :(得分:1)
从本质上讲,存储驱动程序配置是一个安装时设置,一旦正确设置,它就不会真正相关。特别是如果您运行docker info
并且说它正在使用overlay2
驱动程序,我建议您关闭此特定的浏览器选项卡,而不更改任何内容。
在您引用的段落中,带走的重要一点是,一旦删除容器,您在容器内创建的文件(不在卷目录中)将丢失,这些文件不在卷目录中。您使用什么基础存储驱动程序都没有关系。容器文件系统,命名卷和绑定挂载之间的性能差异几乎无关紧要(除非在MacOS主机上绑定挂载非常慢)。
存储驱动程序保留的数据包括临时容器文件系统(在删除容器之前,它们一直保留)和基础图像数据。它不包括命名的Docker卷或其他绑定安装的主机目录。
如果使用devicemapper,则可能会看到是否可以将主机升级到可以使用overlay2驱动程序的较新的Linux发行版。特别是避免了devicemapper驱动程序的固定空间限制。如果必须使用devicemapper,通常的看法是使用专用分区比使用文件更好。但是,正如我前面所说的,这实际上是安装时配置,与您的应用程序或docker run
命令无关。