如何在docker中进行内存分配

时间:2016-01-22 12:10:11

标签: docker

我有一个虚拟大小为6.5 GB的Docker镜像

 var items = context.Items.Where(x => x.IsActive=true).ToList();

但我的系统中的RAM只有4GB,容器工作速度很快,我真的很困惑,因为如何为docker容器进行RAM分配。分配给容器的RAM大小是否有限制,因为最终docker容器只是在操作系统中运行的另一个隔离进程。

1 个答案:

答案 0 :(得分:0)

图像的虚拟大小与内存分配无关

如果您的巨大图像一旦作为容器启动,它的功能很少,它就不会保留太多内存(不会消耗太多CPU)

有关内存分配的更多信息,请参阅this answer:您可以在运行时限制最大内存分配。而且,与图像大小无关。

例如:

$ docker run -ti -m 300M --memory-swap -1 ubuntu:14.04 /bin/bash
  

我们设置内存限制和禁用交换内存限制,这意味着容器中的进程可以使用300M内存和所需的交换内存(如果主机支持交换内存)。