我有一个虚拟大小为6.5 GB的Docker镜像
var items = context.Items.Where(x => x.IsActive=true).ToList();
但我的系统中的RAM只有4GB,容器工作速度很快,我真的很困惑,因为如何为docker容器进行RAM分配。分配给容器的RAM大小是否有限制,因为最终docker容器只是在操作系统中运行的另一个隔离进程。
答案 0 :(得分:0)
图像的虚拟大小与内存分配无关
如果您的巨大图像一旦作为容器启动,它的功能很少,它就不会保留太多内存(不会消耗太多CPU)
有关内存分配的更多信息,请参阅this answer:您可以在运行时限制最大内存分配。而且,与图像大小无关。
例如:
$ docker run -ti -m 300M --memory-swap -1 ubuntu:14.04 /bin/bash
我们设置内存限制和禁用交换内存限制,这意味着容器中的进程可以使用300M内存和所需的交换内存(如果主机支持交换内存)。