限制资源可以让每一个应用的运行预期更为可控,所以生产运行更建议限制资源。至于可运行多少容器原则上所有容器中进程总和不超过宿主机节点系统信号量及容器计算资源不超过宿主机资源就可以继续增加。但不建议单个宿主机上有过多容器。
收起docker实例资源限制主要是通过linux cgroups去实现的,cgroups可以限制、记录、隔离进程组所使用的物理资源,包括:CPU、memory、IO等。
在生产上,肯定是要限制资源的。通过docker run命令加参数来实现,比如-m,--cpu-shares,具体参数请查阅docker命令。
以内存为例,限制资源的话,一旦该容器使用内存到达阈值,就会报OOM;如果不限制,那么就是持续吃掉宿主机的内存,直到宿主机内存占用满为止。