OOM KillerにKillされたか確認する

コンテナが突然停止した場合、OOM Killer(Out Of Memory Killer)によるKillが原因の場合がある。
docker inspectコマンドで.State.OOMKilledフィールドを確認すると、OOM KillerによるKillかどうかを調べられる。

$ docker inspect --format='{{.State.OOMKilled}}' <コンテナ>

OOM KillerによってKillされた場合はtrue、そうでない場合はfalseが返る。

コンテナ名の調べ方

コンテナ名はdocker ps -aコマンドで調べる。停止したコンテナを確認するために-aオプションを付ける。

$ docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS                       PORTS     NAMES
a1b2c3d4e5f6   myapp     "/bin/sh -c 'python …"   5 minutes ago   Exited (137) 3 minutes ago             myapp-1

終了コードが137(128 + 9)の場合、SIGKILLシグナルで強制終了されたことを示しており、OOM Killerによる可能性がある。

実行例

以下の例ではmyapp-1コンテナがOOM KillerによってKillされたか確認している。

$ docker inspect --format='{{.State.OOMKilled}}' myapp-1
true

trueが返った場合、OOM KillerによってKillされている。

docker inspectで詳細を確認する

docker inspectコマンドでStateセクション全体を確認すると、終了コードや終了時刻なども合わせて確認できる。

$ docker inspect --format='{{json .State}}' myapp-1 | jq .
{
  "Status": "exited",
  "Running": false,
  "Paused": false,
  "Restarting": false,
  "OOMKilled": true,
  "Dead": false,
  "Pid": 0,
  "ExitCode": 137,
  "Error": "",
  "StartedAt": "2026-04-19T04:00:00.000000000Z",
  "FinishedAt": "2026-04-19T04:01:30.000000000Z"
}

OOMKilledtrueExitCode137であることからOOM KillerによるKillと確認できる。