在内存中运行 Docker?

2024-03-29

据我了解,Docker 使用内存映射文件从镜像启动。由于我可以一遍又一遍地执行此操作,并且据我记得并行启动同一图像的不同实例,我猜 docker 抽象了文件系统并将更改存储在其他地方。

我想知道 docker 是否可以配置(或者默认情况下)以仅内存模式运行,而无需某种临时文件?


Docker 使用联合文件系统,允许它在“层”中工作(devicemapper、BTRFS 等)。它执行写时复制,因此启动新容器的成本很低,并且当它执行第一次写入时,它实际上创建了一个新层。

当您从映像启动容器时,您是not使用内存映射文件来恢复冻结的进程(除非您自己将所有这些都构建到映像中......)。相反,您正在启动一个普通的 Unix 进程,但在沙箱内,它只能看到自己的 unionfs 文件系统。

在没有副本写入磁盘的情况下启动图像的多个副本通常既便宜又快速。但如果您的流程启动时间较长,您仍然需要为每个实例支付该费用。

至于完全在内存中运行 Docker 容器,您可以创建一个 RAM 磁盘并将其指定为 Docker 的存储卷(可配置,但通常位于/var/lib/docker).

在典型的用例中,我不认为这是一个有用的性能调整。首先,您将花费大量内存来保存您不会访问的文件。映像的基础层包含大多数 Linux 系统文件。如果您从 Docker Hub 获取 10 个包,您可能会轻松获得价值 20G 的镜像(之后存储成本趋于稳定)。其次,系统已经很好地管理内存和交换(这就是为什么 RAM 磁盘是一种性能调整),并且您可以将所有这些应用于容器内运行的进程。第三,对于 RAM 磁盘可能有帮助的大多数情况,您可以使用-v标志将磁盘作为卷安装在容器上,而不需要将整个 unionfs 存储在那里。

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

在内存中运行 Docker? 的相关文章

随机推荐

  • 比较 (int)double 和 (int)int 时出现异常

    嘿 我正在使用 pdCurses lib 和 stringStream 来计算并制作一个代表时钟的 5 个字符长的字符串 它显示为 00 00 0 00 00 00 或 0 000 但是 当运行我的函数时 我在这部分抛出一个异常 if in
  • 如何在Python中验证字典的结构(或模式)?

    我有一本包含配置信息的字典 my conf version 1 info conf one 2 5 conf two foo conf three False optional conf bar 我想检查字典是否遵循我需要的结构 我正在寻找
  • 有没有办法给某人打电话并在android中播放音频文件?

    我想创建一个紧急呼叫应用程序 如果触发 它会呼叫给定号码并播放音频文件 提供呼叫者无法提供的信息 为此 我需要拨打电话 但确保我可以用播放的音频文件替换扬声器中的任何声音 我可以在安卓中做到这一点吗 有什么办法呢 目前您无法使用 G1 执行
  • 自定义“AuthenticationStateProvider”身份验证失败

    我创建了一个自定义ApiAuthenticationStateProvider返回后AuthenticationState仍在说明 info Microsoft AspNetCore Authorization DefaultAuthori
  • Genymotion 中运行的虚拟设备会定期在 ADB 中离线

    我有一个在 Genymotion 2 4 中运行的 Android 设备 如果重要的话 带有 Lollipop 图像 并通过 ADB 版本 1 0 32 从本地网络中使用 Eclipse 的另一台开发人员 PC 连接到它 没有连接问题 一切
  • 如何使用 swift 3 通过 firebase 推送通知发送图像

    任何人都可以帮我发送这样的通知 我正在使用 Firebase 通知 当我发送通知时 我尝试将图像 URL 放入高级选项和键 1 的值中 图像 URL 显示在调试器中 但当我的设备中出现通知时 没有显示图像 这是我的代码 import UIK
  • 使用 Moq 进行 FormsAuthentication.SetAuthCookie 模拟

    您好 我正在对 ASP Net MVC2 项目进行一些单元测试 我正在使用起订量框架 在我的 LogOnController 中 HttpPost public ActionResult LogOn LogOnModel model str
  • SBT 未解决 Squeryl 依赖关系

    我最近开始了一个新项目 Play 框架和Scala 我习惯于使用 Squeryl 进行 ORM 但由于某种原因 这次它无法解决我的依赖关系 尽管它会解决其他问题 只是不能解决 squeryl 问题 我所做的唯一不同的是 我使用的计算机与以前
  • 是否可以查询ExpandoObject列表?

    我想知道是否可以使用常规 LINQ 查询 ExpandoObject 原因是我有动态 ExpandoObject 但我需要进行一些查询才能进一步传递 它有一些始终保留的属性 例如Id Notes还有一些我无法控制的动态属性 这是我的列表的样
  • 在 PowerPoint 中插入、裁剪和调整图像大小,每张现有幻灯片一张

    这是我创建的用于插入图像和调整图像大小的代码 每张幻灯片一个 我无法裁剪从文件位置插入的图像 过程应该是 将图像从文件位置插入到现有幻灯片中 将图像裁剪为所需的尺寸 将图像调整为所需的大小 注意 我的一个文件中有大约 40 张图像 我需要将
  • 什么是依赖类型?

    有人可以向我解释依赖类型吗 我对 Haskell Cayenne Epigram 或其他函数式语言缺乏经验 因此您可以使用的术语越简单 我就越感激 考虑一下 在所有像样的编程语言中 您都可以编写函数 例如 def f arg result
  • 在 Rails 查询中提取关联模型的属性

    在我的 Rails 应用程序中 收藏品有很多projects 并且项目有很多steps 我想获取集合项目中步骤的所有 id 我想知道是否可以在一个查询中完成这一切 例如 我知道我可以执行以下操作 step ids collection pr
  • Meteor 构建内存不足

    我正在尝试构建我的流星应用程序 并且不断遇到以下错误 这不是我第一次构建该应用程序 直到昨天的构建为止一切正常 我已经尝试过 正如 this SO post 1 中的一个答案中所建议的 但它没有帮助 usr bin env node max
  • SAPUI5:如何过滤具有2个或更多值的数据

    我目前正在 SAPUI5 中尝试一些东西 并且我已经实现了一个非常简单的搜索 如下所示 var filters var query evt getParameter query if query query length gt 0 var
  • Android:从服务中关闭屏幕

    我正在尝试找出如何从服务中关闭屏幕 我已经读过this https stackoverflow com questions 1875669 calling hidden api in android to turn screen off但我
  • 如何使用实体框架将存储过程的结果映射到具有不同命名参数的实体

    我正在尝试使用实体框架创建一个基本示例 以将 SQL Server 存储过程的输出映射到 C 中的实体 但该实体具有不同 友好 的名称参数 而不是更神秘的名称 我还尝试使用 Fluent 即非 edmx 语法来做到这一点 什么有效 存储过程
  • -XX:MaxPermSize 带或不带 -XX:PermSize

    我们遇到了一个Java lang OutOfMemoryError 永久代空间错误并查看 tomcat JVM 参数 除了 Xms and Xmx我们还指定了参数 XX MaxPermSize 128m 经过一些分析后 我可以看到 Perm
  • 将 Leaflet 与 Ionic2 typescript 一起使用

    我是新来的Ionic2 and Angular2 with 打字稿我想为 iOS 和 Android 构建一个移动应用程序 下一步我想包括一张地图并找到Leaflet 在 GoogleMaps 和 OSM 之间轻松更改 所以 我的问题从安装
  • MSBuild条件编译

    我有一个 Web 服务类 框架的其余部分依赖它来获取其数据 但是 Web 服务类需要根据其所处的环境具有不同的方法属性 例如 SoapDocumentMethodAttribute https example public string T
  • 在内存中运行 Docker?

    据我了解 Docker 使用内存映射文件从镜像启动 由于我可以一遍又一遍地执行此操作 并且据我记得并行启动同一图像的不同实例 我猜 docker 抽象了文件系统并将更改存储在其他地方 我想知道 docker 是否可以配置 或者默认情况下 以