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 データベースにリモートでログインするにはどうすればよいですか?

推薦する

Vueカウンターの実装

目次1. カウンターの実装2. 成果を達成する1. カウンターの実装ページにカウンターを実装するだけ...

JavaScript ベースのシンプルなカルーセルの実装

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

ベースリンクタグの使用の紹介ベース

<br />リンクをクリックすると、ポップアップ表示される Web ページ アドレスは ...

JavaScript - Vue でのスロットの使用: スロット

目次Vue でのスロットの使用: slotスコープ付きスロット: テンプレートタグで囲む要約するVu...

ウェブデザインにおけるテキスト入力ボックスのパラメータの説明

一般的なゲストブック、フォーラムなどでは、テキスト入力ボックスが使われています。これは HTML 言...

JavaScript で大きなファイルの並列ダウンロードを実装する方法

目次1. HTTP範囲リクエスト1.1 範囲構文2. 大きなファイルをダウンロードする方法2.1 補...

mysql mycat ミドルウェアの簡単な紹介

1. mycatとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベ...

JavaScript を使用してページ要素のオフセットを取得/計算する方法

質問コントロールをクリックすると、コントロールの下にフローティング レイヤーが表示されます。通常の方...

CSS を使用して、左側に固定幅、右側に適応幅を持つ 2 列レイアウトを実装する複数の方法

CSS を使用して、左側に固定幅、右側に適応幅を持つ 2 列レイアウトを実装する 7 つの方法。コー...

LinuxにNginxをインストールする正しい手順

序文私のように、Java バックエンドに勤勉な人であれば、多数のプロジェクト機能を実装することに加え...

CentOS7 上で KVM 仮想化プラットフォームを構築する (3 つの方法)

KVM はカーネルベースの仮想マシンの略で、Linux をハイパーバイザーに変換する Linux ...

MySQL 空間データストレージと関数

目次1. データ型1. MySQL空間データとは何か2. GeoJSONとは3. 空間データ型のフォ...

npm 淘宝ミラー変更説明

1. トップレベルの使用法1. cnpmをインストールする npm i -g cnpm --regi...

JavaScript Canvas で三目並べゲームを実装

この記事では、JavaScript Canvasで三目並べゲームを実装するための具体的なコードを参考...

antd+reactプロジェクトをviteに移行するためのソリューションの詳細な説明

Antd+react+webpackは、多くの場合、Reactテクノロジースタックに基づくフロントエ...