DESIGN / CODE / INFRA / AI

解説

Docker Composeのログを見るには?期間と件数を絞って調べよう

大量のログを全部貼る前に、サービス・期間・件数を絞ろう。エラーを探す順番と共有時の注意点をまとめたよ。

Docker Composeのログを見るには?期間と件数を絞って調べよう

アプリが動かないとき、ログが長すぎると探すのも大変だよね。まずは必要な範囲に絞ってみよう。

Docker Composeのログを見るには?期間と件数を絞って調べようの解説図

図:秘密や個人情報を取り除いてから共有。ERRORという語だけで原因を決めない。

最初はサービスと件数を指定

docker compose ps
docker compose logs --tail 50 --timestamps web

webはサービス名の例なので、自分のcompose.yamlに合わせてね。psで動作状態を見たあと、対象サービスの末尾50行を確認する。複数コンテナがある場合、tailは各コンテナに対する指定なので、総出力が50行とは限らないよ。

再現した時刻の近くを見る

docker compose logs --since 10m --tail 100 --timestamps web

直近10分の範囲で末尾100行を確認する例だよ。いつ操作したか、どのURLへアクセスしたかも控えておくと照合しやすい。ただし、コンテナのログ出力がUTCかローカル時刻かは確認しよう。

追いかけるときはfollow

docker compose logs --follow --tail 20 web

新しい出力を見ながら操作を再現できるよ。終了するにはCtrl+C。ログ表示の終了とコンテナの停止は別なので、慌てて停止コマンドを追加しないようにしよう。

読む順番を決めよう

  • 操作した時刻付近に、対応するリクエストがあるか。
  • その前後に、接続失敗や例外が出ていないか。
  • アプリだけでなく、DBなど依存サービスの状態はどうか。
  • 起動直後の一時的な失敗と、継続する失敗を区別できるか。

ERRORという単語だけで原因を決めず、前後の状況も見るのがおすすめだよ。起動順とhealthcheckも合わせて確認してね。

共有前に秘密を取り除く

ログにはAPIキー、認証ヘッダー、メールアドレス、問い合わせ内容などが含まれることがある。公開の質問サイトやAIへ渡す前に、必要な範囲だけを抜き出して、秘密や個人情報を除いてね。この記事の確認ではログの取得コマンドが正常終了することだけを確かめ、実ログの内容は記事へ転載していないよ。

参考・出典

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。