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"
}
OOMKilledがtrue、ExitCodeが137であることからOOM KillerによるKillと確認できる。
\第一線のプログラマーの行動原理を学べる!/
