Docker 的使用(1.12+)取决于Docker 存储驱动以及可能正在使用的物理文件系统。
TL;DR存储将在所有容器和本地卷之间共享,除非您使用devicemapper
存储驱动程序或通过设置限制docker run --storage-opt size=X
当运行在zfs
or btrfs
司机。 Docker 1.13+ 还支持配额大小overlay2
on an xfs
支持的文件系统。
集装箱
对于所有存储驱动程序,除了devicemapper
,容器和本地卷存储受到底层文件系统托管的限制/var/lib/docker
它的子目录。一个容器可以填满共享文件系统,然后其他容器就无法再写入。
当使用devicemapper
驱动程序中,默认卷大小 100G 是为每个容器“精简分配”的。可以使用 daemon 选项覆盖默认大小--storage-opt dm.basesize option或在每个容器的基础上设置docker run --storage-opt size=2G
.
相同的每个容器配额支持可用于zfs and btrfs驱动程序,因为两个文件系统都提供简单的内置支持来创建具有大小或配额的卷。
The overlay2自 Docker 1.13 起,xfs 上的存储驱动程序支持每个容器配额。当新的 4.5+ 内核成为标准/通用并且 ext4 和 xfs 配额共享通用 API 时,这可能会扩展到 ext4。
Volumes
Docker 卷与容器分离,可以将其视为临时容器的持久存储区域。
卷与 Docker 存储分开存储,并且针对不同后端有自己的插件。local
是默认后端,它将数据写入/var/lib/docker/volumes
因此被保存在容器存储和可能的配额系统之外。
Other 音量插件如果您想在支持它的本地文件系统上设置每个卷的限制,则可以使用它。
容器将在容器重新启动和重新启动时保留自己的文件状态,直到您docker rm容器。卷中的文件将在容器删除后保留下来,并且可以在创建新容器时安装。