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)

推薦する

Linuxの読み取りコマンドの使用

1. コマンドの紹介read コマンドは、シェルの組み込みコマンドで、標準入力または -u オプショ...

ffmpeg 中国語パラメータの詳細な説明

FFMPEG 3.4.1 バージョンパラメータの詳細使用方法: ffmpeg [オプション] [[入...

角度付き双方向バインディングの詳細な説明

目次双方向バインディングの原理ngモデルレンダリングカスタム双方向バインディングプロパティコンポーネ...

Linux の crw、brw、lrw などのファイル属性は何ですか?

ファイルとは何ですか?すべてのファイルは実際には文字列のストリームですが、適切な解析方法を使用すると...

docker view container log コマンドの実装

なぜログを読む必要があるのでしょうか?たとえば、コンテナの起動に失敗したがプロンプトが表示されない場...

Linux の cut コマンドの説明

Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力す...

Nginx を使用してポート転送 TCP プロキシを実装する例

目次需要背景Nginx を使用する理由は何ですか? Nginx によるポート転送依存関係をインストー...

Tomcat プロセスの CPU 使用率が高い場合のトラブルシューティング記録を記録する

この記事では主にTomcatプロセスを記録し、TCP接続が多すぎることによるCPU使用率の過剰のトラ...

フロントエンドページのポップアップマスクはページのスクロールを禁止します

フロントエンド開発者がよく遭遇する問題は、ユーザーに情報を提示するためのポップアップ ウィンドウを作...

Dockerを使用してSpring Bootプロジェクトをデプロイする手順

目次シンプルなSpringbootプロジェクトを作成する1. pom.xmlでSpring Boot...

MySQLがブール型を返すいくつかの状況について簡単に説明します。

mysqlはブール型を返します最初のケースでは、直接戻ります select id='22a...

人気の宇宙飛行士ウォッチフェイスをJavaScriptで実装するための完全なコード

1. エフェクト表示JavaScript で書かれた宇宙飛行士のウォッチフェイス。 http://x...

Navicat Premier の MySQL へのリモート接続エラー 10038 の解決方法

MySQL へのリモート接続が失敗する場合は、次の理由が考えられます。 1. 若い男性/女性の方は、...

Linux システムにおける時間設定の概要

1. 時間の種類は次のように分けられます。 1. ネットワーク時間(タイムゾーンの設定、ntpサーバ...

docker compose を使用してハーバープライベートウェアハウスをインストールする詳細なチュートリアル

概要港とは何ですか?英語の単語の意味は「港」です。 Harborはコンテナ(貨物)を保管するために使...