正在运行的 Docker 容器何时会耗尽磁盘空间?

2023-11-27

我已经阅读了很多文档,但我仍然不确定这到底是如何工作的。这有点像 Docker 与 VM 的问题。

如果我启动一个带有 2GB 硬盘的虚拟机并用文件填充其磁盘,我知道它会在 2GB 文件后耗尽。

Docker 的工作方式相同吗?我想是这样。但从我读到的有关“UnionFS”的内容来看,似乎是这样does not空间不足。

那么为什么 Docker 会存在“卷”呢?是否会以某种方式自动暂时扩展 Docker 磁盘空间?重启后,我保存在 Docker 容器中的文件会消失吗?重启容器后怎么样?


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容器。卷中的文件将在容器删除后保留下来,并且可以在创建新容器时安装。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正在运行的 Docker 容器何时会耗尽磁盘空间? 的相关文章

随机推荐

  • 如果没有 return 语句,javascript 函数会返回什么?

    我只是想知道 没有 return 语句 或没有命中任何 return 语句 的函数是否返回一个完全等于 false 的值 例如 function foo foo 如果在 firebug 中执行 这应该返回 false 但如果我只是调用 fo
  • 如何获取mysql表的外键

    我正在创建一个类 它从数据库中获取一个表 并将其显示到网页上 并具有尽可能多的功能 我想要支持的一件事是让类检测表中的哪些列具有外键约束 以便它可以转到这些表 获取它们的所有值并在选择中使用它们 box 当您编辑这些字段时调用 以避免有人违
  • Angular 6:如何构建一个简单的多个复选框以供用户选中/取消选中?

    我在阅读了有关该主题的几个帖子后写了这篇文章 但没有一个帖子能给我我所需要的东西 这个帖子似乎有解决方案 但我不必从 json 中读取检查的值 我所需要的只是 从对象数组中读取国家 地区 动态构建代表每个国家 地区的复选框列表 用户应该选中
  • 使用日期时间时 MySQL GROUP BY 日期

    在 MySQL 中 假设我有一个表 其中有一个名为 actionTime 的列 声明为 日期时间 YYYY MM DD HH MM SS 有没有一种简单的方法来使用 GROUP BY actionTime 但只使用 日期时间 的 日期 部分
  • 尝试在 Laravel 5 中使用电子邮件

    好吧 首先我要说的是 我对 Laravel 5 还很陌生 我一直在 google 上搜索 试图通过输入适当的 URL 来发送一封简单的电子邮件 但没有成功 不幸的是 我发现的文档并没有那么有帮助 只是提供了一个广泛的外观 我知道 larav
  • 如何从java程序执行“javac和java命令”?

    有没有办法从java程序执行 javac和java命令 如果是这样 请帮帮我 Like Runtime getRuntime exec javac
  • 如何使用 azure 服务总线 5.0.0 在 C# azure 函数中手动处理消息完成

    我正在编写一个 Azure 函数来获取 Azure 服务总线中的消息 我想手动处理任何异常 autoCompleteMessages false 无法弄清楚如何将完整或放弃发送回服务队列 尝试过选项1 FunctionName SBQ F1
  • EntityDeploySplit 错误 - Microsoft.Data.Entity.Build.Tasks.dll 丢失

    彻底重新格式化 Windows 并安装 Visual Studio 2013 后 尝试使用数据库优先的实体框架 edmx 文件构建项目会产生以下错误 无法从程序集中加载 EntityDeploySplit 任务 C 程序文件 x86 MSB
  • Haskell 有限场线性代数库

    我正在寻找 Haskell 的有限场线性代数库 就像是FFLAS FFPACK对于 Haskell 来说会很棒 当然 我检查过hmatrix 似乎有一些支持任意矩阵元素类型但我找不到任何与 hmatrix 一起使用的有限域库 当然 我会很感
  • 保存 foreach dopar 循环的多个输出

    我想知道是否 如何可以返回多个输出作为foreach dopar loop 让我们举一个非常简单的例子 假设我想做 2 项操作作为foreach循环 并希望返回或保存每个值的两个操作的结果i 如果只返回一个输出 则很简单 library f
  • 是否有可能在不循环的情况下对ArrayList求和

    是否有可能求和ArrayList不循环 PHP提供sum array 这将给出数组的总和 PHP 代码就像 a array 2 4 6 8 echo sum a array sum a n 我想在 Java 中做同样的事情 List tt
  • 将字典转换为 Numpy 数组

    我正在尝试转换字典 0 0 173 1 342 2 666 3 506 4 94 1 0 13 1 2171 2 1915 3 3075 4 630 2 0 0 1 265 2 5036 3 508 4 11 3 0 0 1 3229 2
  • BTLE(低功耗蓝牙)开发套件 - 必须具有邻近配置文件

    谁能给我指出一个经过测试的低功耗蓝牙开发套件 板 我对接近度配置文件以及与智能手机 尤其是 iPhone 和 Android 设备 以及任何其他具有 BTLE 的设备 的兼容性特别感兴趣 另外 您能告诉我哪些智能手机支持邻近配置文件吗 如果
  • Magento 中保存“特价”的表格在哪里?

    我尝试使用 mySQL 和 php 脚本批量更新 Special price 和 price 我知道包含 price 的表和行 但不知道包含 special price 的表和行 我查看了数据库本身 但仍然没有运气 有任何想法吗 我需要表名
  • android.permission.WRITE_SETTINGS 是否仅授予系统应用程序?

    我们目前正在开发一个应用程序 我们希望在其中更改一些系统设置 当然需要用户许可 android 文档说要执行此操作 您必须添加以下权限
  • 如何使用 C# 对齐 ListView 中单个子项的文本?

    我无法在任何地方找到这个看似简单的主题的答案 是否可以在 WinForms ListView 控件中对齐单个子项的文本 如果是这样 怎么办 我希望同一列中的文本以不同方式对齐 例子 listView1 Columns 1 TextAlign
  • Android Chrome window.onunload

    我正在开发一个 HTML5 应用程序专门针对 Android 和 Chrome 我遇到的问题源于跟踪打开的浏览器选项卡的要求 我通过创建存储在每个选项卡的 sessionStorage 中的唯一 ID 来实现此目的 然后 我通过在每个选项卡
  • 更改了vhost并在CouchDB中重写,无法访问内部API

    我想将我的自定义域映射到设计文档 rewrite Configuration vhosts www myapp com myapp design user rewrite Rewrites from to static browser in
  • HashSet contains() 方法

    我执行下面的代码 发现输出是false import java util Set import java util HashSet public class Name private String first last public Nam
  • 正在运行的 Docker 容器何时会耗尽磁盘空间?

    我已经阅读了很多文档 但我仍然不确定这到底是如何工作的 这有点像 Docker 与 VM 的问题 如果我启动一个带有 2GB 硬盘的虚拟机并用文件填充其磁盘 我知道它会在 2GB 文件后耗尽 Docker 的工作方式相同吗 我想是这样 但从