You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将OOM杀死的进程关联至对应Docker容器?

如何将OOM杀死的进程关联至对应Docker容器?

嘿,我来帮你搞定这个问题!当内核日志里出现OOM杀死进程的记录,要找到对应的Docker容器其实不难,给你几个实用的方法:

  • 第一步:先提取日志里的关键信息
    从你的kern.log里,先记下被杀死的进程PID(比如你这里的7996或9637),另外日志里已经给出了线索:cpuset=docker-84650dafae24a54b7e0f98571ee18585495f73a8...,这里的一串字符就是目标容器的完整ID。

  • 方法一:通过进程PID直接查容器(如果进程还存在的话)
    执行以下命令,替换<PID>为实际的进程号:

    cat /proc/<PID>/cgroup
    

    输出结果里会包含类似docker-<容器ID>.scope的条目,其中<容器ID>就是你要找的容器标识。比如输出可能是:

    12:cpuset:/docker/84650dafae24a54b7e0f98571ee18585495f73a8

  • 方法二:用容器ID确认容器详情
    拿到容器ID后,不管是从cgroup还是日志里提取的,都可以用docker ps命令查看容器的具体信息:

    # 用完整ID查询
    docker ps -a --filter "id=84650dafae24a54b7e0f98571ee18585495f73a8"
    # 或者用短ID(前12位)更方便
    docker ps -a --filter "id=84650dafae24"
    

    这个命令会返回容器的名称、使用的镜像、状态等信息,帮你快速定位是哪个容器出了问题。

  • 方法三:直接从OOM日志提取容器ID
    像你日志里已经显示了cpuset=docker-<容器ID>的字段,直接把这串ID复制出来,用上面的docker ps命令查询就行——毕竟进程已经被OOM杀死,/proc/<PID>目录可能已经不存在了。

另外提醒一下,如果你的Docker版本比较新,cgroup的路径格式可能会略有不同,但核心逻辑都是找包含docker和容器ID的条目,一找一个准!

备注:内容来源于stack exchange,提问作者daNutz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 09:15:31