Docker 17中,容器的磁盘空间是如何分配的?

Docker 17中,容器的磁盘空间是如何分配的?

互联网上有各种资源表明,默认情况下,docker 容器限制为 10g。但是,这些解释都伴随着docker system info显示限制的指示。我有 docker 版本 17.05.0-ce,没有docker system info显示这样的限制,这表明情况已经发生了变化。我有一个构建失败,容器中的文件系统操作显示“空间不足”。那么,我所用的空间在哪里,我如何分配更多空间?docker info显示aufs,那么磁盘空间是否位于/var文件系统上?

答案1

您看到的默认为 10G 的“基本大小”限制与 devicemapper 存储驱动程序有关。它不适用于 aufs、overlay、overlay2 或其他存储驱动程序。devicemapper 存储驱动程序通常用于 Red Hat 安装。

使用 aufs 时,磁盘位于 /var/lib/docker 下,您可以使用 检查那里的可用空间df -h /var/lib/docker。如果您将卷安装到容器中,则该磁盘将位于卷安装的位置。命名卷默认为 /var/lib/docker,但其他卷(尤其是主机卷)将位于您指定的目录中。

有关详细信息,请参阅:

选择存储驱动程序

使用设备映射器存储驱动程序

使用 aufs 存储驱动程序

答案2

我会为任何寻找 Windows 信息的人补充:

默认情况下,卷为 20GB,可以使用 进行更改--storage-opt "size=50GB"

来源: https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/container-storage

图片大小

Windows 应用程序的常见模式是在安装或创建新文件之前查询可用磁盘空间量,或将其作为清理临时文件的触发器。为了最大限度地提高应用程序兼容性,Windows 容器中的 C: 驱动器代表 20GB 的虚拟可用大小。有些用户可能想要覆盖此默认值并将可用空间配置为更小或更大的值,这可以通过“storage-opt”配置中的“size”选项来实现。示例

命令行:docker run --storage-opt "size=50GB" microsoft/windowsservercore:1709 cmd

Docker 配置文件:

"storage-opts": [
    "size=50GB"
  ]

请注意,此方法适用于 docker build。请参阅配置docker有关修改 docker 配置文件的更多详细信息,请参阅文档。

相关内容