我使用的是 Ubuntu14.04 和 docker1.10.3。
当我使用 docker run
执行 --memory-swap -1
时,我发现主机使用的内存超出了该容器可以使用的最大内存,并且主机上没有其他进程消耗大量内存。下面的图片是我在我的电脑上进行的测试:
第一部分是主机上的内存使用情况。
第二部分是在容器中运行的测试,以使用 stress 模拟使用容器中的 900M 内存。
第三部分使用 docker stats
查看容器的当前统计信息。
我发现虽然docker stats
显示容器使用的内存不超过104.9M,但在主机上使用的内存远远超过104.9M。 --memory-swap -1
似乎允许容器使用尽可能多的内存。
这是真的吗?
最佳答案
是的,你是完全正确的。
您可以在 docker references 中找到更多信息(尽管该问题并未在那里明确说明)。--memory-swap="" Total memory limit (memory + swap, format: <number>[<unit>]). Number is a positive integer. Unit can be one of b, k, m, or g.
--memory-swap -1 ...disabled swap memory limit, this means the processes in the container can use as much swap memory as they need (if the host supports swap memory).
如果您想禁用容器的交换使用,您可以使用--memory-swap=0
关于memory - docker 内存交换=-1 OOM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37640119/