UbuntuでDockerログ肥大化を防ぐ方法
- 作成日 2026.06.05
- 更新日 2026.06.18
- ubuntu
UbuntuでDockerコンテナを長期間運用していると、コンテナログが蓄積されてディスク容量を圧迫することがあります。特にアクセス数の多いWebサービスやエラーログが頻発するアプリケーションでは、数GBから数十GBのログが生成されることも珍しくありません。本記事では、Dockerログの肥大化を防ぐための設定方法と運用のポイントを解説します。
Dockerログ肥大化の原因
Dockerではデフォルトで「json-file」ログドライバーが使用されます。
ログファイルは以下に保存されています。
/var/lib/docker/containers/コンテナごとに以下のようなログファイルが作成されます。
xxxxxxxxxxxxxxxx-json.logコンテナが大量のログを出力すると、このファイルが無制限に増加し続けます。
現在のログサイズを確認する
まずはログの使用量を確認します。
sudo du -sh /var/lib/docker/containers実行結果

詳細確認
sudo du -ah /var/lib/docker/containers | sort -rh | head -20大きなログファイルを特定できます。
Dockerのログドライバーを確認する
現在の設定を確認します。
docker info | grep "Logging Driver"表示例
Logging Driver: json-filejson-fileを利用している場合はログローテーション設定を追加することを推奨します。
全コンテナにログローテーションを設定する
Dockerデーモン設定ファイルを編集します。
sudo nano /etc/docker/daemon.json設定例
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "5"
}
}
設定内容
・max-size:1ファイルの最大サイズ
・max-file:保存世代数
上記の場合は最大50MBまで保存されます。
Dockerサービスを再起動する
設定反映のため再起動します。
sudo systemctl restart docker状態確認
systemctl status docker正常に起動していることを確認します。

コンテナ単位でログ制限を設定する
docker run実行時に指定することも可能です。
例
docker run -d \
--log-opt max-size=10m \
--log-opt max-file=5 \
nginx特定コンテナだけログ管理したい場合に利用します。
Docker Composeで設定する
Docker Compose利用時はloggingセクションを追加します。
services:
app:
image: nginx
logging:
driver: json-file
options:
max-size: "10m"
max-file: "5"設定変更後
docker compose up -dまたは
docker-compose up -dで再作成します。
肥大化したログを削除する
既に大きくなったログは自動では縮小されません。
サイズ確認
sudo find /var/lib/docker/containers -name "*.log" -exec ls -lh {} \;
ログ内容を削除
sudo truncate -s 0 /var/lib/docker/containers/1b36332b185b1fb1da63b13c6beda358ac19264d44acb7fea9e1dba9087a25db/
1b36332b185b1fb1da63b13c6beda358ac19264d44acb7fea9e1dba9087a25db-json.logログファイル自体は残したまま内容のみ削除できます。
不要なコンテナやイメージを削除する
未使用リソースも容量を消費します。
未使用コンテナ削除
docker container prune未使用イメージ削除
docker image prune -a未使用ボリューム削除
docker volume pruneまとめて削除
docker system prune -a実行前に必要なデータがないことを確認してください。
ログ使用量を定期監視する
定期的に容量を確認すると肥大化を早期発見できます。
確認コマンド
sudo du -sh /var/lib/dockerまたは
docker system df出力例

ディスク使用量の把握に役立ちます。
おすすめのログ設定例
一般的なWebサーバーやアプリケーションでは以下の設定がよく利用されます。
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "10"
}
}最大200MBまで保存されるため、多くの環境で十分なログ保持と容量管理を両立できます。
まとめ
UbuntuでDockerログの肥大化を防ぐには、ログローテーション設定を行うことが最も重要です。デフォルトのjson-fileドライバーはログサイズを制限しないため、長期間運用するとディスク容量不足の原因になります。
「max-size」と「max-file」を設定してログを自動ローテーションし、定期的に「docker system df」や「du」コマンドで使用量を確認することで、安定したDocker運用を実現できます。
-
前の記事
Ubuntuでsystemdサービスの状態を確認する方法 2026.06.05
-
次の記事
UbuntuでIPアドレスを確認する方法 2026.06.05
コメントを書く