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)

推薦する

高速レイアウトのための CSS ビューポート単位

CSS ビューポート ユニットはここ数年登場しており、時が経つにつれて、ますます多くの開発者が使用し...

MySQL PXC クラスターの構築方法

目次1. PXCの紹介1.1 PXC の紹介1.2 PXC の特徴と利点1.3 PXCの限界と欠点1...

nginxでの共有メモリの使用に関する詳細な説明

nginx プロセス モデルでは、トラフィック統計、トラフィック制御、データ共有などのタスクを完了す...

VMware での Ubuntu 16.04 イメージの完全インストール チュートリアル

この記事では、VMware 12でのUbuntu 16.04イメージのインストールチュートリアルを参...

HTML 適応テーブル方式

<body style="scroll:no"> <テーブルの...

Nginx ロードバランシング クラスタの実装

(1)実験環境youxi1 192.168.5.101 ロードバランサーyouxi2 192.168...

MySQLの左結合と内部結合について簡単に説明します

序文最近、X 省のコールド チェーン トレーサビリティ システムの開発で忙しくしています。毎日午後 ...

HTMLでのフォーム送信の実装

フォーム送信コード1. ソースコード分析 <!DOCTYPE html> <htm...

MySQLオンラインデータベースのデータをクリーンアップする方法

目次01 シナリオ分析02 操作方法03 結果分析01 シナリオ分析今日の午後、開発仲間がオンライン...

Vue の get リクエストと post リクエストの違いのまとめ

このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...

Vueでaxiosをカプセル化する方法

目次1. インストール1. はじめに3. インターフェースルートアドレス4. 使用例4.1 ダウンロ...

HTML ページ出力で従うべきいくつかの原則の要約

1. DOCTYPE は必須です。ブラウザは宣言した DOCTYPE に基づいてページのレンダリング...

js キャンバスで円形の水のアニメーションを実現

この記事の例では、円形の水のアニメーションを実現するためのキャンバスの具体的なコードを参考までに共有...

ネイティブJavaScriptでカルーセルを実装する

この記事では、JavaScriptでカルーセルを実装するための具体的なコードを参考までに紹介します。...

TypeScript ジェネリックを簡単に説明する方法

目次概要ジェネリック医薬品とはビルドシステムジェネリック医薬品の一般的な理解ジェネリッククラスジェネ...