docker logs -f --tail=300の意味を整理する

  • Docker
  • Logging

この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。

コンテナのログを確認する際によく使う docker logs -f --tail=300 <container-name> について、それぞれのオプションが何をしているか整理する。

コマンドの構文

docker logs -f --tail=300 <container-name>
  • docker logs:コンテナの標準出力・標準エラーに溜まっているログを表示する
  • -f(--follow):表示した後もログの追加を待ち受け続ける。tail -f と同じ挙動で、フォアグラウンドで動き続けるので止めるまで端末を専有する
  • --tail=300:末尾から300行を初期表示してから -f の追従に入る。指定しないと全ログを最初から流そうとするため、長時間稼働しているコンテナだと表示に時間がかかったり、一気に大量の行が流れて読みづらくなる
  • <container-name>:対象のコンテナ名。コンテナIDの先頭数文字でも代用できる

オプションの順序は自由で、docker logs --tail=300 -f <container-name> でも同じ意味になる。

それぞれの役割

-f と --tail は役割が別で、組み合わせて使うことで「直近のログをまず把握しつつ、その後の変化もリアルタイムに追う」ことができる。

  • --tail だけの場合:その時点のログのスナップショットしか見えない
  • -f だけの場合:起動時からの全ログが流れた後、以降のログを追従する
  • 両方使う場合:直近N行を見た上で、以降のログをリアルタイムに追える

補足

タイムスタンプ付きで見たい場合は -t(--timestamps)を追加すると各行に時刻が付与される。ログの間隔を確認したい場合に使えるらしいが、実機での挙動は未確認。