运行ning Docker 容器 运行 何时用完磁盘 space?
When does a running Docker container run out of disk space?
我已经阅读了这么多文档,但我仍然不确定它是如何工作的。这是一个 Docker 与 VM 的问题。
如果我启动一个带有 2GB 硬盘驱动器的虚拟机并用文件填充它的磁盘,我知道它 运行 在 2GB 文件后就用完了。
Docker的工作原理是一样的吗?我会这么认为。但是从我读到的 "UnionFS" 看来 不 运行 出 space.
那么为什么会存在Docker"volumes"呢?这是否以某种方式自动扩展 Docker 磁盘 space 瞬态?我保存在 Docker 容器中的文件会在重启后消失吗?重启容器后如何?
Docker 的用法 (1.12+) 取决于 Docker storage driver 以及可能使用的物理文件系统。
TL;DR 存储将在所有容器和本地卷之间共享,除非您使用 devicemapper
存储驱动程序或通过 [=11= 设置限制] 当 运行 在 zfs
或 btrfs
驱动程序上时。 Docker 1.13+ 还支持在 xfs
支持的文件系统上使用 overlay2
的配额大小。
容器
对于所有存储驱动程序,devicemapper
除外,容器和本地卷存储受限于托管 /var/lib/docker
及其子目录的底层文件系统。一个容器可以填满共享文件系统,然后其他容器就不能再写了。
使用 devicemapper
驱动程序时,每个容器的默认卷大小为 100G "thin allocated"。可以使用守护程序选项 --storage-opt dm.basesize
option 覆盖默认大小,或者使用 docker run --storage-opt size=2G
在每个容器的基础上设置。
zfs
and btrfs
驱动程序可以使用相同的每个容器配额支持,因为这两个文件系统都提供简单的内置支持来创建具有大小或配额的卷。
overlay2
storage driver on xfs supporta per container quotas as of Docker 1.13。当新的 4.5+ 内核变为 standard/common 并且 ext4 和 xfs 配额共享一个公共 API 时,这可能会扩展到 ext4。
数量
Docker volumes 与容器是分开的,可以看作是临时容器的持久存储区。
卷与 Docker 存储分开存储,并且针对不同的后端有自己的插件。 local
是默认后端,它将数据写入 /var/lib/docker/volumes
,因此保存在容器存储和可能的配额系统之外。
如果您想在支持它的本地文件系统上设置每个卷限制,可以使用其他 volume plugins。
容器将在容器重新启动和重新启动时保持自己的文件状态,直到您 docker rm
容器。卷中的文件将在容器删除后继续存在,并且可以在创建新容器时安装。
我已经阅读了这么多文档,但我仍然不确定它是如何工作的。这是一个 Docker 与 VM 的问题。
如果我启动一个带有 2GB 硬盘驱动器的虚拟机并用文件填充它的磁盘,我知道它 运行 在 2GB 文件后就用完了。
Docker的工作原理是一样的吗?我会这么认为。但是从我读到的 "UnionFS" 看来 不 运行 出 space.
那么为什么会存在Docker"volumes"呢?这是否以某种方式自动扩展 Docker 磁盘 space 瞬态?我保存在 Docker 容器中的文件会在重启后消失吗?重启容器后如何?
Docker 的用法 (1.12+) 取决于 Docker storage driver 以及可能使用的物理文件系统。
TL;DR 存储将在所有容器和本地卷之间共享,除非您使用 devicemapper
存储驱动程序或通过 [=11= 设置限制] 当 运行 在 zfs
或 btrfs
驱动程序上时。 Docker 1.13+ 还支持在 xfs
支持的文件系统上使用 overlay2
的配额大小。
容器
对于所有存储驱动程序,devicemapper
除外,容器和本地卷存储受限于托管 /var/lib/docker
及其子目录的底层文件系统。一个容器可以填满共享文件系统,然后其他容器就不能再写了。
使用 devicemapper
驱动程序时,每个容器的默认卷大小为 100G "thin allocated"。可以使用守护程序选项 --storage-opt dm.basesize
option 覆盖默认大小,或者使用 docker run --storage-opt size=2G
在每个容器的基础上设置。
zfs
and btrfs
驱动程序可以使用相同的每个容器配额支持,因为这两个文件系统都提供简单的内置支持来创建具有大小或配额的卷。
overlay2
storage driver on xfs supporta per container quotas as of Docker 1.13。当新的 4.5+ 内核变为 standard/common 并且 ext4 和 xfs 配额共享一个公共 API 时,这可能会扩展到 ext4。
数量
Docker volumes 与容器是分开的,可以看作是临时容器的持久存储区。
卷与 Docker 存储分开存储,并且针对不同的后端有自己的插件。 local
是默认后端,它将数据写入 /var/lib/docker/volumes
,因此保存在容器存储和可能的配额系统之外。
如果您想在支持它的本地文件系统上设置每个卷限制,可以使用其他 volume plugins。
容器将在容器重新启动和重新启动时保持自己的文件状态,直到您 docker rm
容器。卷中的文件将在容器删除后继续存在,并且可以在创建新容器时安装。