阿里云ecs2核4g可以装多少个docker?
这个是没有固定的数量限制的,主要看自己的配置。
默认docker容器可以使用宿主机所有的内存和CPU,我们可以通过 docker run 来限制内存和CPU的使用。
有的系统内核不支持 Linux capabilities. 可以通过 docker info 命令来检查,如果系统内核不支持,会有如下报错
WARNING: No swap limit support
在linux主机上,如果kernel发现没有足够的内存了,会报出OOME或者Out Of Memory Exception,并且会kill 进程来释放内存,任何的进程都有可能会被kill,包括docker,这可能引起整个系统的宕机。
docker尝试通过调整docker守护进程的OOM优先级来减轻风险,以便它比系统上的其他进程更不可能被杀死。
–memory-swap 介绍
只有当–memory设置之后,–memory-swap 才会生效
1、如果–memory-swap设置为正整数,那么这两个–memory和 –memory-swap必须设置。–memory-swap表示可以使用的内存和交换总量,并–memory控制非交换内存使用的数量。因此,如果–memory=”300m”和–memory-swap=”1g”,容器可以使用300m的内存和700m(1g – 300m)交换。
2、如果–memory-swap设置为0,则忽略该设置,并将该值视为未设置。
3、如果–memory-swap设置为与值相同的值–memory,并且–memory设置为正整数,则不使用swap。
4、如果–memory-swap未设置并且–memory已–memory设置,则如果主机容器配置了交换内存,则容器可以使用两倍于设置的交换。例如,如果–memory=”300m”和–memory-swap未设置,容器可以使用300m的内存和600m的交换。
5、如果–memory-swap明确设置为-1,则允许容器使用无限制交换,最多可达主机系统上可用的数量。
防止容器使用交换
如果–memory和–memory-swap设置为相同的值,则可以防止容器使用任何交换。这是因为–memory-swap可以使用的组合内存和交换量,而–memory只是可以使用的物理内存量。