2026年10月10日
2026年10月10日
Dockerコンテナのログを確認する方法
はじめに
Dockerは、アプリケーションの実行環境を一貫させるために広く使用されています。しかし、デバッグや監視目的でコンテナのログを確認することが必要となる場面も少なくありません。この記事では、基本的な手順から応用まで、Dockerコンテナのログを確認する方法を解説します。
症状・背景
- トラブルシュート: コンテナ内でエラーが発生した場合
- 性能監視: アプリケーションのパフォーマンスを把握したい時
- セキュリティ確認: 不正アクセスや脆弱性について調査する必要があるとき
- 運用管理: ログ分析によってより効果的な運用管理を行いたい時
手順・設定方法
ステップ1: Dockerコンテナのログを直接表示する
# コンテナIDまたはコンテナ名を使用してログを表示します。
docker logs <コンテナID>
# 最新のログのみを表示します。
docker logs -f <コンテナID>
ステップ2: Dockerコンテナの詳細な設定オプションを使用する
# エラー発生時に自動的にコンテナを停止し、その時のログを保存します。
docker run --name myapp --log-opt max-size=10m --log-opt max-file=3 <イメージ名>
# コンテナ起動時にログの出力を詳細に設定します。
docker run -e LOG_LEVEL=DEBUG <コンテナID>
ステップ3: Docker Swarmで利用する場合
# Docker Swarmでのログ確認
docker service logs <サービス名>
# ログレベルを設定するための環境変数を使用します。
export DOCKER Swarm=true
docker service update --env-file .env <サービス名>
ステップ4: アプリケーション特定のログ管理
# ファイルベースのログを記録する場合
docker run -v /path/to/log:/app/log --name myapp <イメージ名>
# Logrotateを使用してログファイルを定期的に圧縮・削除します。
logrotate -f /etc/logrotate.d/dockerlogs
注意事項
- セキュリティ上の注意: 重要な情報が含まれる可能性のあるログは、適切なアクセス制御を行いましょう。
- パフォーマンス/運用上の注意: 大量のログを保持すると、パフォーマンスに悪影響を与えることがあります。定期的なクリーンアップが必要です。
まとめ
1. 基本操作: docker logs コマンドを使用してコンテナの直近ログを確認します。
2. 詳細設定: イメージまたはサービス起動時にログオプションを設定します。
3. Docker Swarm: Swarm環境でのログ管理は独立したコマンドと異なる方法で行います。
4. アプリケーション特定のログ: ファイルベースのログや外部ツールとの連携が必要な場合があります。
5. 注意点: セキュリティとパフォーマンスを考慮に入れながら、適切にログ管理を行いましょう。
関連記事: