为什么 docker 容器在启动时需要比运行期间更多的 RAM?

Why does a docker container need more RAM at startup than during operation?

我有一个包含多个 docker 容器的 docker 组合文件。如果我将这些 Docker 个容器一个接一个地放入 depends_on 中,所有容器都可以正常启动,最后我还剩下 300MB 的 RAM 内存。

但是当我尝试同时启动所有容器时,出现 OOM 错误。 RAM消耗增加是否正常?

如果是这样,有人能告诉我它是来自 Docker 端(正在启动额外的进程)还是可能是我的容器造成的。

在您的情况下,增加的 ram 是完全正常的。通过使用 depends_on 标志,您一次启动每个容器,如果没有它,您将同时启动多个容器。

Docker-compose 将在幕后使用额外的 RAM 来启动您的容器。因为它使用 depends_on 标志工作,所以每个容器都有额外的 RAM,因此能够启动。如果没有 depends_on 标志和并发启动,我假设 RAM 量超过了您可用的 300MB。

我建议为每个容器配置内存限制和预留 - 特别是在像您这样的 RAM 非常有限的情况下。