首页/云/Docker 容器速查/容器 OOM 的识别与处理
本包目录(366 条)
基础命令50 条镜像与构建107 条网络与存储52 条Compose 编排55 条
资源与安全50 条
容器排障52 条

容器 OOM 的识别与处理

容器内存超限被内核终止时:退出码 137、inspect 的 OOMKilled 为 true;处理顺序是先确认限制值与峰值,再决定调限额或降内存。

Docker 容器速查云更新于 2026-10-12
典型退出码137(SIGKILL)
判定字段.State.OOMKilled = true
宿主侧痕迹dmesg 中的 oom 相关记录

示例

示例
docker inspect -f '{{.State.ExitCode}} {{.State.OOMKilled}}' api
dmesg | grep -i -E 'oom|killed process' | tail -20
docker stats --no-stream api
--oom-kill-disable 只在容器已设内存限制且有明确理由时讨论,默认不建议关闭内核的保护机制。

易错点

  • 137 也可能来自 docker kill 或宿主干预,用 OOMKilled 字段区分具体原因
  • 只看应用日志会误判为崩溃重启,先查退出码与 OOM 标记再排查应用

数据来源与参考

  • Docker 官方文档:OOM 与资源限制(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌