Dockerコンテナ監視とログ管理の実装プロセス分析

Dockerコンテナ監視とログ管理の実装プロセス分析

Docker の導入規模が大きくなると、コンテナを監視する必要があります。一般的に、Docker には ps、top、stats などの監視サブコマンドがいくつか付属しています。また、人気の高いオープンソース監視ツール Prometheus もあります。

Docker独自の監視サブコマンド ps

docker psはコンテナをリストします。現在実行中のコンテナを表示するのに便利です。以下はコマンド構文とパラメータ構文です。

docker ps [オプション]

オプションの説明:

  • -a : 実行されていないコンテナも含め、すべてのコンテナを表示します。
  • -f: 条件に応じて表示されるコンテンツをフィルタリングします。
  • --format : 戻り値のテンプレートファイルを指定します。
  • -l : 最近作成されたコンテナを表示します。
  • -n : 最近作成された n 個のコンテナを一覧表示します。
  • --no-trunc : 出力を切り捨てません。
  • -q : サイレントモード、コンテナ番号のみを表示します。
  • -s : ファイルの合計サイズを表示します。

出力の詳細:

  • コンテナ ID: コンテナ ID。
  • IMAGE: 使用する画像。
  • COMMAND: コンテナを起動するときに実行するコマンド。
  • CREATED: コンテナが作成された時刻。
  • ステータス: コンテナのステータス。

7 つの状態があります:

  • 作成された
  • 再起動
  • ランニング
  • 削除する
  • 一時停止
  • 終了した
  • 死んだ

PORTS: コンテナのポート情報と使用される接続タイプ (tcp\udp)。

名前: 自動的に割り当てられたコンテナ名。

Docker の新しいバージョンでは、docker container ps と同じ機能と使用方法を持つ新しいコマンド docker container ls が提供されます。ただし、 ls の意味は ps よりも正確である可能性があるため、こちらが推奨されます。

トップ

コンテナ内で実行されているプロセスを知りたい場合は、次のように docker container top コマンドを実行します。

このコマンドの後に Linux オペレーティング システムの ps コマンドのパラメータ (-au など) を付けて、特定の情報を表示することもできます。docker container top [コンテナ名] -au の実行結果は次のようになります。

統計

Docker コンテナ統計は、各コンテナのさまざまなリソースの使用状況を表示するために使用されます。


デフォルトでは、各コンテナの CPU 使用率、メモリ、使用可能なスペースを示すリアルタイム リストが表示されます。

コンテナ起動時にメモリ制限を指定していない場合、stats コマンドはホストメモリの総量を表示しますが、これは各コンテナがこれだけのメモリを使用できることを意味するものではありません。また、docker container stats コマンドはコンテナのネットワークとディスク IO データも表示します。stats コマンドの後にコンテナ名を指定すると、特定のコンテナのデータを表示できます。

Docker ログ

Docker のログ機能はデフォルトで設定されています。

実行中のコンテナの場合、Docker はコンテナの標準出力デバイス (STDOUT) と標準エラーデバイス (STDERR) にログを送信します。STDOUT と STDERR は、実際にはコンテナのコンソール ターミナルです。

コンテナ ログを表示するには、次の 2 つの方法があります。

このコンテナに取り付けます。

ログを表示するには、docker logs コマンドを使用します。

attach メソッドは、次の理由により、実際にはあまり便利ではありません。

アタッチ後のログのみが表示され、それ以前のログは表示されません。

アタッチ状態を終了するのはさらに面倒であり (Ctrl+p の次に Ctrl+q キーの組み合わせ)、コンテナーを誤って強制終了してしまう可能性も高くなります (たとえば、Ctrl+C を押すなど)。

コンテナ ログを表示するには、docker logs コマンドを使用することをお勧めします。

以下のように表示されます。

docker logs はコンテナが起動されてからの完全なログを出力でき、-f パラメータは新しく生成されたログを引き続き出力できます。これは Linux の tail -f と同じです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Golang が Docker コンテナのハートビート監視機能を実装
  • spring-boot と docker-java に基づいて Docker コンテナの動的な管理と監視を実装します [完全なソース コードのダウンロード付き]
  • Zabbix は Docker コンテナのステータスを監視します [推奨]
  • Dockerコンテナ可視化監視センターの構築の詳細説明
  • Grafana を使用して Docker コンテナの監視チャートを表示し、電子メールアラートルールを設定する (図)
  • Dockerコンテナのメモリ監視の原理と応用
  • Dockerコンテナを監視するPythonスクリプト

<<:  Vueは小さなカウントダウン機能を実装します

>>:  MySql データベースにリモートでログインするにはどうすればよいですか?

推薦する

JavaScriptは、ユーザーがチェックボックスをオンにする必要があるプロトコルの例を実装します。

js では、ログインまたは登録を確認する前に、ユーザーが特定の契約書を読むように設定します (使用...

WEB2.0の片手ルール

<br />前回のCSSに関する記事は、多くの人にあまり理解されませんでした。そのため、...

MySQL InnoDB ロックの概要

目次1. 共有ロックと排他ロック2. 意図ロック3. レコードロック4. ギャップロック5. ネクス...

ECMAscript の新機能の紹介

目次1. 関数パラメータのデフォルト値1.1 関数パラメータのデフォルト値の指定1.2 分離割り当て...

解決策 - BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: 権限が不十分です

1) jdkファイルが保存されているフォルダパスを入力します私はここにいますusr/local/jd...

Linux 環境に MySQL 8.0 をインストールするプロセスの紹介

目次序文1. Linux は yum ソースを変更します (MYSQL のインストールが遅い場合は試...

Alibaba Cloud イメージリポジトリの Docker 構成変更の実装

docker リポジトリ自体は非常に遅いですが、中国の Alibaba Cloud ミラー リポジト...

CSSは、入力ボックスのフローティングテキスト効果を実現するために、placeholder-shown疑似クラスを使用します。

この記事では、:placeholder-shown 疑似クラスを使用して、純粋な CSS で浮動疑問...

ブラウザがクロージャをどのように認識するかについて詳しく説明します

目次序文クロージャの紹介メモリのゴミを識別する方法クロージャのメモリ表現結論序文クロージャは、Jav...

Linux で xargs コマンドを使用する詳細なチュートリアル

みなさんこんにちは。私は梁旭です。 Linux を使用しているときに、いくつかのコマンドを連結する必...

Docker 経由で Redis 6.x クラスターをデプロイする方法

システム環境: Redis バージョン: 6.0.8 Docker バージョン: 19.03.12シ...

vue-cli で stimulsoft.reports.js を使用する詳細なチュートリアル

vue-cli は stimulsoft.reports.js を使用します (ナニーレベルのチュー...

CSS と JS を使用して下線効果を実装する方法の例

この記事では、主に 2 種類の下線の動的効果について説明します。1 つ目は、ホバーすると X 軸が内...

React 入門レベルの詳細なメモ

目次1. Reactの基本的な理解1. はじめに2. Reactの特徴3. Reactが効率的な理由...

JavaScript と CSS を最適化してウェブサイトのパフォーマンスを向上させる

<br /> 第 1 部と第 2 部では、Web サイトのパフォーマンス、ページ コンテ...