跳到主要内容
常见问题 DockerOOM容器

容器被 OOMKilled 杀掉?

OOMKilled 说明容器内存触顶。先分清是容器自身泄漏、内存限额设太低,还是宿主机内存本就不足,再对症加内存或治泄漏。

发布于 2026/11/11 所属频道 Ubuntu 与 Debian

简短答案

容器被 OOMKilled = 内存需求超过了某个上限:容器 --memory 限额、宿主机物理内存、或 cgroup 组限额。先看 OOM 发生的层级(容器还是宿主机),再决定是调限额还是治泄漏,顺序反了会越修越乱。

现象对照

现象 判断
仅单容器被杀 该容器 —memory 限额偏低
整台机所有容器被杀 宿主机物理内存耗尽
跑一阵必杀 应用内存泄漏

排查步骤

docker inspect <容器> --format '{{.State.OOMKilled}} {{.HostConfig.Memory}}'
dmesg | grep -iE 'oom|killed process' | tail -20
free -h

宿主机层面:看 free -h 总量是否真的不够;容器层面:对比应用实际用量与 --memory 限额,先给 2 倍余量观察是否仍被杀。泄漏场景把容器 --memory 加到实际峰值 × 1.5,同时把泄漏报给应用侧修。部署基线参考 Ubuntu 26.04 服务器版,机制在 Debian 上相同,另见 Ubuntu 发行条目。

操作小结

  1. docker inspect 先看 OOMKilled 与 Memory 限额
  2. dmesg 分清杀的是容器还是宿主
  3. 限额场景加 1.5~2 倍余量观察,泄漏场景报应用侧
  4. 别无脑加内存——先看实际用量再定上限

相关链接

本文内容基于公开资料整理,仅供参考;涉及授权与合规的操作请以厂商官方文档为准。

相关推荐下载

按本文主题匹配的官方原版镜像条目

配套 PE 工具

制作启动盘、备份数据、修复引导

其他常见问题

同一集合内的相近主题,按标签与关键词匹配