如何在docker中发生内存分配

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

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE Image_Name latest d8dcd701981e About an hour ago 6.565 GB 

但在我的系统RAM只有4GB,但容器工作在一个很好的速度,虽然我真的很困惑,如何RAM分配是为docker集装箱完成。 对于分配给容器的RAM大小是否有任何限制,因为在端口容器容器中,只是运行在操作系统中的另一个隔离进程。

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

如果你的巨大的图像,一旦启动作为一个容器,做的很less,它不会保留太多的内存(不占用太多的CPU)

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

例如:

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

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