什么是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 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Li...
1、什么是docker?答:docker是开源的应用容器引擎;开发人员把他们的应用及依赖包打包发布到容器当中。...
1、什么是namespace? 答:名称空间,作用隔离容器 2、namespace隔离有那些? 答:ipc:共享内存、消息队...
1、Docker能在非Linux平台(Windows+MacOS)上运行吗? 答:可以 2 、如何将一台宿主机的docker环境...
环境要求: IP hostname 192.168.1.1 node1 项目规划: 容器网段:172.16.10.0/24 NGINX:172.16.10.10...
文档上传地址:https://files.cnblogs.com/files/lin-strive/07-docker%E8%B7%A8%E4%B8%BB%E6%9C%BA%E7...