当它消耗一定数量的内存时重新启动泊坞窗

我有一个机器上运行多个docker进程,我想监视它们,并重新启动docker进程,一旦它通过一定的内存阈值。 我可以让docker重新启动它的过程,当它达到内存阈值? 我有什么select?

谢谢

亚历克斯

您可以制作一个shell脚本来监视资源使用情况,并在达到内存限制时重新启动Docker守护进程,但是我认为这不是一个好的方法。

使用这个命令,你可以看到你的容器按内存使用情况sorting。 find哪个容器使用了太多的内存,并试图find原因,因为这是发生。

docker stats --no-stream --format "table {{.Name}}\t{{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" | sort -k 4 -h

此外,如果您的容器的内存消耗正常,但您想限制它,则可以限制分配给每个容器的资源。 您可以在--memory中使用选项--memory来执行此操作。

有关内存限制的更多信息,请查看Docker文档中的以下信息: https : //docs.docker.com/engine/admin/resource_constraints/

希望这有帮助,祝你好运。

编辑:回答你的回应,如果你的容器内存不足,它将被内核自动杀死。 您可以使用选项--memoryconfiguration内存限制,并将重新启动策略设置为--restart=always 。 这样,你的容器会被一个OOM(内存不足)错误自动终止,但是它的重启策略是在任何错误后继续重启。