docker - 为什么 docker 容器在启动时需要比运行时更多的 RAM?
问题描述
我有一个包含多个 docker 容器的 docker compose 文件。如果我将这些 Docker 容器一个接一个地放在depends_on中,所有容器都可以毫无问题地启动,最终我还剩下300MB 的RAM 内存。
但是当我尝试同时启动所有容器时,我收到了 OOM 错误。 内存消耗增加正常吗?
如果是这样,有人可以告诉我它是来自 Docker 端(正在启动额外的进程)还是由于我的容器。
解决方案
在您的情况下,增加的 ram 是完全正常的。通过使用 depends_on 标志,您一次启动每个容器,没有它,您将同时启动多个容器。
Docker-compose 将在幕后使用额外的 RAM 来启动您的容器。因为它使用depends_on 标志工作,所以每个容器都有额外的RAM,因此能够启动。如果没有 depends_on 标志,因此我假设并发启动的 RAM 量超过了您可用的 300MB。
我建议为每个容器配置内存限制和预留 - 特别是在像您这样的 RAM 非常有限的情况下。
推荐阅读
- android - 如何通过android xml设置按钮可点击不可点击
- wordpress - Wordpress 不会自定义帖子类型页面
- c# - Protobuf C# 生成的类使用实体框架重复字段不可设置
- sql - 用户保留 - 查询细化
- java - 为特定键分配和取消分配编号
- ruby - 如何在不使用 Ruby 中的“string.reverse”方法的情况下检查一个单词是否是回文?
- asp.net - 如何为 Azure CICD 管道中的 web.config 和 connectionStrings.config 文件自动进行 XML 转换?
- c++ - 如何在 Visual Studio 中包含带有 exe 的图像资源文件?
- ios - 如何在快速更改屏幕方向时避免背景图像平铺
- typescript - 我可以从属性的实现中获取泛型类型吗?