Dockerのlogsコマンド概要
Dockerはコンテナの実行状態や出力を確認するためにlogsコマンドを提供しています。主にコンテナ内部で標準出力(STDOUT)や標準エラー(STDERR)に出力されたログを取得する際に使用します。
基本的な使い方
以下が最もシンプルな形式です。
docker logs [OPTIONS] コンテナ名またはID
オプションを付けることで表示内容や取得方法を細かく制御できます。
主なオプション
- -f, –follow:リアルタイムでログの追跡を行い、コンテナが出力する新しいログを随時表示します。
- –since:指定した時間以降のログだけを表示します。例:
--since="2023-01-01T00:00:00"または--since=10m(過去10分) - –tail:最後のN行だけを取得します。
--tail=100で直近100行。 - -t, –timestamps:各ログ行にタイムスタンプを付与します。
- –details:Dockerが提供する詳細情報(ラベルなど)を合わせて表示します。
実践的な例
- コンテナの最新ログを100行だけ取得
docker logs --tail=100 my_container - リアルタイムでログを監視しつつ、過去5分の履歴も表示
docker logs -f --since=5m my_container - タイムスタンプ付きで全ログを取得
docker logs -t my_container
ログの保存と分析
取得したログはリダイレクトやパイプでファイルに保存し、grepやawkといったUnixコマンドで分析できます。
docker logs my_container > container.log
また、外部のログ集約ツール(ELKスタックやPrometheus+Grafana)と組み合わせることで、複数コンテナのログを一元管理・検索することが可能です。
まとめ
Dockerのlogsは、コンテナの挙動を把握する上で欠かせないツールです。オプションを活用すれば、過去の履歴からリアルタイム監視まで柔軟に対応できます。実運用ではログの永続化や外部集約を併用し、トラブルシューティングやパフォーマンス監視に活かしましょう。