【问题标题】:Docker container memory usageDocker 容器内存使用情况
【发布时间】:2018-05-05 05:28:16
【问题描述】:

我有一个 Lamp Docker 映像。 我想启动这个图像的 500 个容器,我需要多少内存? 我已经跟踪了每个新容器的内存使用情况,它几乎与它的图像的任何其他容器相同。 因此,如果单个容器使用 200 MB,我可以在具有 1 GB RAM 的 Linux 机器上启动 5 个容器。

我的问题是:

docker 容器是否使用相同的内存,例如,相同的虚拟机映像? 可能是我在 docker 配置或 docker 文件中做错了什么?

【问题讨论】:

标签: docker


【解决方案1】:

docker stats 可能会给您所需的反馈。 https://docs.docker.com/engine/reference/commandline/stats/

【讨论】:

    【解决方案2】:

    我不知道 docker 内部的确切细节,但总体思路是 Docker 尝试尽可能多地重用。因此,如果您启动五个相同的容器,它应该比虚拟机运行得快得多,因为 docker 应该只有一个基础映像和文件系统的实例,所有容器都引用这些实例。 对一个容器的文件系统的任何更改都将添加为顶部的一层,仅标记更改。底层镜像不会改变,所以五个容器仍然可以引用同一个基础镜像。

    然而(我相信)虚拟机将拥有五个实例中每个实例的文件系统的完整副本,因为它不使用分层文件系统。

    所以我不确定如何确定需要多少内存,但这应该会让你更清楚这个概念。您可以启动一个容器来查看一个容器所需的“基本内存”,然后每个新容器只应添加较小的恒定内存量,这样您就可以大致了解需要多少内存。

    【讨论】:

    • 许多流行的虚拟机管理程序通过创建机器快照来支持分层虚拟磁盘。快照记录磁盘映像的更改,而不是复制整个磁盘。
    • 问题是关于内存(ram)而不是磁盘。
    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多