首页 > 解决方案 > 如何调试被主机杀死的 Docker 容器(137)?

问题描述

我正在使用 docker-compose 一起运行 3 个应用程序:

我可以docker-compose up毫无问题地启动组合服务,并且它运行了一段时间也没有问题。在某些时候,某些东西会杀死两个代码为 137 的非 nginx 容器,并且服务会停止运行。

docker-compose.ymlrestart: always每个容器上都有,但据我了解,如果容器以这种方式被杀死,这不会重新启动容器。我docker kill $CONTAINER在每一个上都验证了这一点,并且它们没有重新启动。

当应用程序退出时,我在日志末尾看到的只是:

nginx exited with code 0
java_app exited with code 143
node_app exited with code 137

如何调试主机杀死这些容器的原因,并阻止这种情况发生或让它们在失败时重新启动?

标签: dockerdocker-compose

解决方案


您没有足够的内存或您的应用程序有内存泄漏。您可以限制每个容器。此外,如果您没有足够的内存,您可以尝试创建交换空间。


推荐阅读