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 環境変数の設定方法のまとめ (.bash_profile と .bashrc の違い)

Linux では、アプリケーションをダウンロードしてインストールすると、起動時にアプリケーション名...

MySQLの権限とインデックスの詳細な説明

mysql の権限とインデックスmysql の最高権限ユーザーは root です。 CREATE U...

Firefox で英語の文字が折り返されない問題の解決方法

テキストのレイアウトには、言語に応じていくつかの書式設定要件があります。たとえば、簡体字中国語では、...

Docker コンテナのカスタム ホストのネットワーク アクセス操作

docker-compose.yml に extra_hosts キーワードを追加すると、コンテナの...

vue+px2rem(rem適応)を使用してPCで大画面適応を実装するためのサンプルコード

構成の序文プロジェクト構築: vue-cli3 をベースに構築、rem 適応には postcss-p...

Dockerイメージをインポートおよびエクスポートする方法

この記事では、移行、バックアップ、アップグレードなどのシナリオで使用される Docker イメージの...

MySQL ベストプラクティス: パーティションテーブルの基本タイプ

MySQL パーティションテーブルの概要MySQL の人気が高まるにつれて、MySQL に保存される...

Docker共通コマンドの詳しい解説 Study03

目次1. ヘルプコマンド2. ミラーコマンド3. コンテナコマンド1. ヘルプコマンド1. 現在のD...

MySQLクエリのパフォーマンスを分析する方法

目次スロークエリの基礎: データ取得の最適化データベースから不要なデータが要求されていないか確認する...

Vueカスタムテーブル列実装プロセス記録

目次序文レンダリングsetTable コンポーネント使用結論序文フォームを使用して PC 側のプロジ...

MySql5.x を MySql8.x にアップグレードする方法と手順

MySQL 5.x と MySQL 8.0.X のいくつかの違いapplication.proper...

HTMLテーブルタグの詳しい解説(初心者向け)

表> <TR> <TD> <TH> <キャプション&...

CSS3+HTML5+JSでブロックの縮小・拡大アニメーション効果を実現

最近、あるプロジェクトに取り組んでいたとき、自分のプロジェクトでは CSS3 のアニメーション技術を...