什么是Docker在说“没有交换的内存限制”时的含义

当我运行docker时,我收到警告:

WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.

我试图找出这意味着什么,特别是“没有交换的内存限制”这句话.

这是否意味着容器可以使用比通常使用主机的交换空间通常允许的容量更多的内存?或者它是否意味着即使主机完全耗尽内存,容器也无法使用交换空间?是否配置了交换空间?如果你不使用交换,这是无关紧要的吗?

注意:我对如何修复它不感兴趣 – 谷歌上有很多关于它的结果.我对它的意义以及它为何重要感兴趣.

最佳答案
这是我发现的.

认情况下不使用交换.您可以在/sys/fs/cgroup/memory/memory.stat上的Ubuntu / Debian容器上查看.检查swap value,你会看到它被设置为0(字节).没有交换使用.

你可以使用带有–memory和–memory-swap标志的enable and limit swap usage,这里就是这个WARNING似乎能得到你的地方.从Docker’s documentation起关于一个非常相似的警告:

If you don’t need these capabilities,you can ignore the warning. You can enable these capabilities on Ubuntu or Debian by following these instructions.

tl; dr:认禁用交换.如果cgroup被禁用或容器交换限制受到影响,就像此警告所示,您将无法设置这些限制.

相关文章

Docker是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...