Docker容器内存使用量

23
我有一个Lamp Docker镜像。 我想启动500个这个镜像的容器,我需要多少RAM? 我已经追踪了每个新容器的内存使用情况,并且它几乎与其图像的任何其他容器相同。 所以,如果单个容器使用200 MB,则可以在具有1 GB RAM的Linux机器上启动5个容器。
我的问题是:
Docker容器是否使用与同一虚拟机镜像相同的内存? 也许我在Docker配置或Docker文件中做错了什么?

1
同样的问题(尚未有答案):https://dev59.com/42Af5IYBdhLWcg3wZB6u?rq=1 - Thilo
1
请查看:http://blog.thestateofme.com/2014/03/12/docker-memory-profiling/ - Mark O'Connor
2
@AlexShuraits 如果你有答案,请与我们分享。和我们一样遇到同样问题的人会很感激你的帮助! - Mitch Kent
2个回答

15

4
我不知道Docker内部的确切细节,但总体思路是尽量重用。因此,如果您启动五个相同的容器,则应比虚拟机运行得快得多,因为Docker应仅具有一个基本映像和文件系统实例,所有容器都引用该实例。 对一个容器文件系统所做的任何更改都将作为顶部层添加,并仅标记更改。底层图像不会更改,因此五个容器仍然可以引用同一单个基本图像。
然而,虚拟机(我认为)将针对每个五个实例拥有完整的文件系统副本,因为它不使用分层文件系统。
因此,我不确定您如何确定需要多少内存,但这应该使概念更加清晰。您可以启动一个容器以查看需要一个“基本内存”,然后每个新容器只需添加较小的常量内存,这应该给您一个大致的想法。

许多流行的虚拟机监视器都支持通过创建机器快照来支持分层虚拟磁盘。快照记录磁盘映像的更改,而不是复制整个磁盘。 - Lie Ryan
10
这个问题涉及内存(RAM)而不是硬盘。 - sargue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接