MilkyWiki DockerOOM Edit MetaEdit Search

Dockerでは、一定期間後に何のログ出力もなくコンテナが終了することがある。
特に、メモリが少ないマシンで発生する。ログに何も異常がない場合、原因はOOMであることが多い。


あるコンテナが突然落ちた場合、以下のコマンドの出力がtrueであればメモリ不足で落ちている。
$ docker inspect <コンテナ名> | grep OOMKilled

この場合、ホスト上で直接走らせた時と違いアプリ側でOOMのエラーが出るわけではない。
また、docker自体もそれなりにメモリを消費するのでそのせいの可能性もある。

解決法
アプリの設定を見直してメモリを少なく使うようにする
サーバーの場合、たいていプロセス数などを減らして同時処理数を減らすことでメモリの使用率を減少させることができる。

zramを使う
メモリ使用量があと少しあればよいような場合は、zramを使うことで効果的にメモリを減らせる。ただし処理負荷は上がる。

dockerのログをlocalにする、ファイルサイズを減らす
dockerでjson形式のログをやめ、またローテーションのサイズを10MB程度にすることでもメモリ使用量が減る。

RAM割り当てを上げる(できれば)

Back Last Update: Tue, 30 Jun 2026 21:03:29 +0900