Docker限制内存使用不起作用

时间:2016-10-30 03:54:19

标签: docker

使用此命令运行PHP docker时:

docker run -m 50M -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp php:7.0-cli php your-script.php

your-script.php具有以下内容:

<?php
    for ($i = 0; $i > -1; $i++)
        echo $i;
?>

即使内存使用量已达到50M的限制,容器仍会继续运行。

在运行docker run命令之前,在主机上执行以下命令:

$ watch "free -m"

返回:

             total   used       free     shared    buffers     cached
Mem:           995        634        360          0        116        191

在docker run命令运行期间,我可以看到free列中的值低于200M,但脚本仍然在运行。

1 个答案:

答案 0 :(得分:0)

你的代码只算数,我永远不会达到极限。尝试创建对象或类似的东西。

另一件事,用free来衡量消耗的内存是非常不精确的。由于操作系统使用内存进行缓存。尝试顶部,然后按E和e查看以MB为单位的值。

此致