docker ログ - docker コンテナ ログの実装を表示します

docker ログ - docker コンテナ ログの実装を表示します

docker logs コマンドを使用してコンテナ ログを表示できます。

コマンド形式:

$ docker logs [オプション] コンテナ
 オプション:
    --details 詳細情報を表示 -f, --follow リアルタイムログを追跡 --since string 特定のタイムスタンプまたは相対時間(42m(つまり42分)など)以降のログを表示します
    --tail string ログの末尾から何行表示するかを指定します。デフォルトはすべてです。
  -t, --timestamps タイムスタンプを表示する --until string 特定のタイムスタンプ、または 42m (つまり 42 分) などの相対時間より前のログを表示する

例:

指定した時間後のログを表示し、最後の 100 行のみを表示します。

$ docker logs -f -t --since="2018-02-08" --tail=100 コンテナID

過去 30 分間のログを表示します。

$ docker logs --since 30m CONTAINER_ID

一定時間後にログを表示します。

$ docker logs -t --since="2018-02-08T13:23:37" コンテナID

一定期間のログを表示します。

$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" コンテナID

補足: Docker コンテナのデバッグのヒント: docker ログと docker サービス ログ

コンテナのデバッグ

Docker を初めて使用する学生の多くは、Docker コンテナが起動できないという問題に遭遇したり、何をすればよいのかわからずに何度も起動し続けたりすることがよくあります。

Docker は、コンテナ操作の問題を簡単にデバッグできる一連の簡単なコマンドを提供します。

原理は非常に単純で、コンテナのランタイム(または過去形)のログを直接出力することができます。

通常、次の 4 つの方法があります。

docker run (コンソール上でコンテナを起動)

docker exec (バックグラウンドコンテナにアタッチ)

docker logs

docker service logs

以下では

コンソールからコンテナを起動する

たとえば、Redisコンテナをデバッグして起動します

docker run -it -rm redis redis-server [redis 起動パラメータは省略...]

この方法では、redis-serverのログ出力がコンソールに直接表示されます。

欠点は、この方法はコンテナのデバッグを開始するときにのみ使用され、バックグラウンドで実行されているコンテナや期限切れのコンテナを操作できないことです。

Docker execはバックグラウンドコンテナにアタッチします

システムの動作状態を確認するために、コンテナに入る必要がある場合があります。このとき、docker exec を使用できます。

docker exec を使用する前提は、コンテナが実行されていることです。そのため、コンテナが正常に動作しない場合は、このコマンドを使用できないことがよくあります。

docker ログ

実際、docker コンテナがどのような状態であっても、docker logs を使用してコンテナのすべてのログを取得できます。

docker logs [コンテナ名]

Docker ログにも制限があり、Docker swarm モードで起動に失敗したコンテナ ログを取得することはできません。

docker サービスログ

Docker swarm モードの場合は、コンテナ ログのコマンドを取得します。

通常、サービスのコンテナ名を取得するには、次のコマンドを順番に実行します。

docker サービス ls
docker service ps [サービス名]

コンテナ名でログを取得できます

docker サービス ログ [コンテナ名]

Dockerサービスログにはログが空であることが示されています

dockerサービスログを適切に動作させるには、dockerの設定を行う必要があります。

:vi /etc/docker/daemon.json を編集します。

このファイルに追加:

{
  "ログドライバー": "json ファイル",
  「ログオプション」: {
    "ラベル": "production_status,geo",
    "env": "os,顧客"
  }
}

次にdockerを再起動します

サービスdockerの再起動

dockerサービスログの詳細な紹介については、公式ドキュメントを参照してください。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Dockerコンテナ内のホストのホスト名が取得できない問題の解決方法
  • Dockerがコンテナを起動するたびに、IPとホストが指定した操作が実行されます。
  • Dockerコンテナイメージからコードを復元する手順
  • Docker コンテナのカスタム ホストのネットワーク アクセス操作
  • dockerコンテナの再起動後に/etc内の一部の設定ファイルがリセットされる問題を解決します
  • Docker実行コンテナが作成状態にある問題についての簡単な説明
  • DockerコンテナはホストのMySQL操作にアクセスする

<<:  MySQLクエリ最適化に必須の知識ポイントのまとめ

>>:  React コンポーネント通信ルーティングパラメータ転送 (react-router-dom)

推薦する

FileZilla を使用して FTP サーバーに接続するプロセスの図

最初にサーバー上に FTP サーバーをセットアップし始めたとき、接続できないことがわかったので、Fi...

CocosCreator ユニバーサルフレームワークデザインネットワーク

目次序文Websocketの使用Websocketオブジェクトの構築Websocket ステータスW...

HTMLファイルで外部CSSファイルを導入する場合のパスの書き方について簡単にまとめます

1. 外部CSSファイルの基本スタイルをインポートする<link> タグを使用して外部ス...

CSS 共通スタイルで二重矢印を描画するサンプルコード

1. 単一の矢印への複数の呼び出し単一の矢印を実装したら、二重矢印を実装するのは簡単です。上では、単...

RHEL8 で静的 IP アドレスを設定するさまざまな方法の簡単な分析

Linux サーバーで作業している場合、ネットワーク カード/イーサネット カードに静的 IP アド...

Windows 環境に mysql-8.0.11-winx64 をインストールする際に発生する問題を解決する

MySQL インストール パッケージをダウンロードします。mysql-8.0.11-winx64 を...

知っておくべき 7 つのネイティブ JS エラーの種類

目次概要1. 範囲エラー2. 参照エラー3. 構文エラー4. タイプエラー5. URIエラー6. 評...

Vue プロジェクトで mock.js を使用するための完全な手順

Vue プロジェクトで mock.js を使用する開発ツールの選択: Vscode 1. コマンドラ...

React の国際化 react-intl の使用

React で国際化を実現するにはどうすればよいでしょうか? react-intlプラグインは、Re...

スクリプトを使用して、ワンクリックでDockerイメージをパッケージ化してアップロードします。

著者は1年以上マイクロフロントエンドプロジェクトに取り組んできました。チームは10個のマイクロアプリ...

MySQL トリガーの紹介、トリガーの作成、使用制限の分析

この記事では、例を使用して、MySQL トリガーの概要、トリガーの作成方法、およびトリガーの使用上の...

nginx をプロキシ キャッシュとして使用する方法

キャッシュを使用する目的は、バックエンドの負荷を軽減し、Web サイトの同時実行性を向上させることで...

MySQL InnoDB row_id 境界オーバーフロー検証方法の手順

背景クラスメートと row_id の境界問題について話し合ったので、ここで詳しく説明します。 Inn...

Docker を使用した SQL Server の実行の実装

現在、.net Core はクロスプラットフォームであり、誰もが Linux と Docker を使...