dokcerコンテナのログを削除したり管理する方法

Dockerコンテナを運用しているとログがどんどん溜まっていきます。特に頻繁にログ出力するコンテナではログによりストレージが逼迫することもあります。本記事では、Dockerコンテナのログを削除する方法とログのローテート方法について記載します。

docker inspectコマンドを使用する

特定のコンテナのログドライバの設定を確認するには、docker inspect コマンドを使用します。これにより、ログの設定やサイズ制限を確認できます。

docker inspect <コンテナ名またはID>

ただし、このままだと対象の箇所を探すのに時間が掛かるので、ログファイルを特定するために、次のようにします。

docker inspect <コンテナ名またはID> | grep -i log

出力の中の LogPath フィールドにログファイルのパスが表示されます。

"LogPath": "/var/lib/docker/containers/....log",
"Name": "/コンテナ名",
        :
        "LogConfig": {
            :

ログファイルのサイズを確認する

LogPathを指定して、ログファイルのサイズを確認できます。

sudo du -sh <LogPathの値>
580K    /var/lib/docker/containers/....log

ログを削除する

LogPathを指定して、ログを削除できます。

sudo truncate -s 0 <LogPathの値>

コンテナのログローテート方法

Docker Composeの設定ファイルで、loggingセクションを使用してコンテナのログ管理を行うことができます。

loggingセクションの記述例

logging:
  driver: "json-file"
  options:
    max-size: "10m"
    max-file: "3"

ログ設定の詳細

  • driver - 使用するログドライバを指定する。上記の場合はjson-fileを指定している
  • options - ログドライバに関連するオプションを指定する
    • max-size - 各ログファイルの最大サイズ。例えば、"10m"は10メガバイトを意味する
    • max-file - ログファイルの最大数。例えば、"3"は最大3つのファイルを保持することを意味する
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です