为什么docker容器消耗大量内存?

C.P*_*.P. 11 node.js docker docker-machine

我是码头工人的新手。我有一个 nodejs(sails.js) 应用程序。我已经使用 docker 部署了它。我的 Ubuntu 机器上只有一个 docker 容器在运行。

当我尝试使用“docker stats”命令监视我的 docker 容器的内存使用情况时,下面是我得到的统计信息(如图所示)

码头统计

我的问题是,为什么这个单个 docker 容器会占用大量内存~207MiB?将来如果我想增加每台主机运行的容器数量,它会以这个倍数消耗内存吗?如果我想在我的机器上运行 100 个相同应用程序的容器,这似乎不是可行的解决方案。有没有办法优化docker容器的内存消耗?

(当我在没有 docker (sails lift / node app.js) 的情况下运行相同的应用程序时,它只消耗 80MB 的内存。)

dav*_*4jr 11

我知道这个问题很老了,但我认为值得补充的是,如果您使用 Docker For Mac,您可以导航到Docker > Preferences > Resources > Advanced,该页面上有几个控制资源设置的选项,例如:

  • CPU数量
  • 记忆
  • 交换
  • 磁盘映像大小

以及其他各种设置。我注意到,如果我表示 2GB 内存,只要 Docker 桌面在运行,它就会使用整个 2GB 内存。


小智 4

默认情况下,任何 Docker 容器都可能消耗尽可能多的硬件,例如 CPU 和 RAM。如果您在同一主机上运行多个容器,您应该限制它们可以消耗的内存量。例如:-m“300M”--内存交换“1G”

每个docker容器的平均开销为12M,而docker deamon - 130M