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

推薦する

mysqlにコメント情報を追加する実装

序文最近、MySQL に関するメモをいくつか尋ねる人がいたので、ブログ記事を書かなければなりません。...

JavaScript 基礎シリーズ: 関数とメソッド

目次1. 関数とメソッドの違い2. 良い関数の書き方2.1 正確な命名2.1.1 関数の命名2.1....

Div CSS 命名標準 CSS クラスの命名規則 (SEO 標準に準拠)

検索エンジン最適化 (SEO) では実行すべきタスクが多数ありますが、その中でもコードの最適化は重要...

ウェブページを開いて数秒後に他のページにリダイレクトする

これを実現するには、次のコードを追加するだけです。方法1: メタを使用する使用方法: <Met...

Linux sedコマンドの使用

1. 機能紹介sed (Stream EDitor) は、コンテンツを 1 行ずつ処理するストリーム...

CSS3は、欠けた角の長方形、折り畳まれた角の長方形、欠けた角の境界線を実装しています。

序文数日前、偶然、コーナーの四角形が欠落している機能に遭遇しました。最初に頭に浮かんだのは、必要な場...

Linux システムで httpd の自動インストールと構成を Ansible で実装する方法

1. Ansibleのプレイブックを使用してhttpdを自動的にインストールする1) まず、Ansi...

CSS スタイルで一般的なグラフィック効果を示すサンプルコード

一般的な基本グラフィックと私が遭遇するいくつかの小さなアイコンについて簡単に説明します。以下は CS...

VUE ユニアプリの基本コンポーネントの簡単な紹介

1. スクロールビュー垂直スクロールを使用する場合は、固定の高さを指定して CSS で高さを設定する...

vue+iviewのメニューとタブの連携方法

Vue+iview メニューとタブのリンク現在、vue+iview を使用してバックエンド管理システ...

HTML でフレームセット タグを使用するチュートリアル

フレームセット ページは通常の Web ページとは多少異なります。依然として <HTML>...

MySQL max_allowed_pa​​cket 設定

max_allowed_pa​​cket は、受け入れるパケットのサイズを設定するために使用される ...

Mysql データベース ストアド プロシージャの基本構文の説明

プロシージャ sp_name を削除します//これまで、MYSQL 構文の基礎知識について説明して...

JavaScript はマウスのドラッグを実装して div のサイズを調整します

この記事では、マウスをドラッグしてdivのサイズを調整するJavaScriptの具体的なコードを参考...

JavaScript におけるイベント委譲メカニズムと深いコピーと浅いコピーの簡単な分析

目次1. イベントの委任イベントバブリングイベントキャプチャイベントの泡立ちの昇華考える2. 深いコ...