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の基本を詳しく説明

目次変数データ型拡張ポイント要約する変数基本的な構文 var age=10; //ageという変数を...

CentOS 6 ZLMediaKit のコンパイルとインストール分析

Centos6にZLMediaKitをインストールするZLMediaKit の作者は Ubuntu ...

nginx のロケーションで URI の傍受を実装する方法

例:場所のルートとエイリアスルートディレクティブは、ルートによって設定されたディレクトリに検索ルート...

DockerでJenkinsをインストールし、初期プラグインのインストール失敗の問題を解決する

Jenkins をインストールした後、プラグインの初期ダウンロードが常に失敗し、インストールが失敗し...

HTMLボタンを中央に配置する方法

HTML ボタン自体を中央に配置するにはどうすればよいでしょうか? このアイデアは簡単に見つかります...

Linux スクリプトの基礎を詳しく紹介

目次1. スクリプトvim環境2. シェルスクリプトで環境を定義する方法3. シェルスクリプト内の翻...

MySQL 8.0 のユーザーとロールの管理原則と使用方法の詳細

この記事では、MySQL 8.0 のユーザーとロールの管理について例を挙げて説明します。ご参考までに...

シンプルなHTMLとCSSの使い方の詳細な説明

HTML と CSS を含む JD.com のホームページの静的ページ効果を 3 日間で完成させます...

React でカレンダー コンポーネントを構築するためのステップ バイ ステップ ガイド

目次事業背景テクノロジーの活用技術的な問題デザインのアイデア😱 困惑と苦痛に満ちた顔🙄考え始める🌲デ...

Django+vue 登録とログインのサンプルコード

登録するフロントエンドは、vue の axios を使用して値を渡し、取得したアカウントとパスワード...

binlog2sql と簡単なバックアップおよびリカバリを使用して mysql8.0.20 を構成するための詳細な手順

目次最初のステップのインストールステップ2: MySQLデータを準備する3 番目のステップは、bin...

メタビューポートはiPhoneでウェブページをフルスクリーン表示コントロールします

困り果てて、ふと、私がよく行くSinaのタッチスクリーン版はどうやって作られているのだろう?と考えま...

W3C チュートリアル (15): W3C SMIL アクティビティ

SMIL は、Web にタイミングとメディアの同期のサポートを追加します。 SMIL は、Web に...

MySQLが日付フィールドインデックスを使用しない理由の要約

目次背景探検する要約する背景テーブルでは、dataTime フィールドは varchar 型に設定さ...

MySQLトリガーの使用と理解

目次1. トリガーとは何ですか? 2. トリガーを作成するトリガーを作成するための構文は次のとおりで...