使用此命令运行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,但脚本仍然在运行。
答案 0 :(得分:0)
你的代码只算数,我永远不会达到极限。尝试创建对象或类似的东西。
另一件事,用free来衡量消耗的内存是非常不精确的。由于操作系统使用内存进行缓存。尝试顶部,然后按E和e查看以MB为单位的值。
此致