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つのファイルを保持することを意味する