docker - 如何调试被主机杀死的 Docker 容器(137)?
问题描述
我正在使用 docker-compose 一起运行 3 个应用程序:
- 标准 Nginx 镜像
- Java/Spark API 服务器
- Node.js 应用程序(后端 + 前端)
我可以docker-compose up
毫无问题地启动组合服务,并且它运行了一段时间也没有问题。在某些时候,某些东西会杀死两个代码为 137 的非 nginx 容器,并且服务会停止运行。
我docker-compose.yml
在restart: always
每个容器上都有,但据我了解,如果容器以这种方式被杀死,这不会重新启动容器。我docker kill $CONTAINER
在每一个上都验证了这一点,并且它们没有重新启动。
当应用程序退出时,我在日志末尾看到的只是:
nginx exited with code 0
java_app exited with code 143
node_app exited with code 137
如何调试主机杀死这些容器的原因,并阻止这种情况发生或让它们在失败时重新启动?
解决方案
您没有足够的内存或您的应用程序有内存泄漏。您可以限制每个容器。此外,如果您没有足够的内存,您可以尝试创建交换空间。
推荐阅读
- ios - 主线程与后台线程上的 CompletionHandler 行为
- r - 基地不存在 R
- sql - 如何执行大型 SQL 语句
- php - 有没有办法使用 IN 从 MySql 列中进行选择,其中一列有多个单词?
- javascript - Javascript;导航到具有未知元素名称的对象
- intellij-idea - PhpStorm“到处搜索”中缺少“章节”
- pine-script - 如何以指定价格制作 pine 脚本测试
- javascript - ChartJS 电子邮件 HTTP 请求 API
- java - java - 如何避免在java中的异步系统中并行处理重复项
- powershell - 如果列中的文本与特定路径或文件名匹配,则删除整行 CSV