docker inspect コマンドの使用に関するヒント

docker inspect コマンドの使用に関するヒント

説明と紹介

Docker inspect は Docker クライアントのネイティブ コマンドであり、Docker オブジェクトの基盤となる基本情報を表示するために使用されます。コンテナ ID、作成時間、実行ステータス、起動パラメータ、ディレクトリのマウント、ネットワーク構成などが含まれます。さらに、このコマンドを使用して、Docker イメージの情報を表示することもできます。

公式の説明は次のとおりです。

Dockerオブジェクトに関する低レベルの情報を返す

文法

構文は次のとおりです。

docker examine [オプション] NAME|ID [NAME|ID...]

オプション

以下の表は公式ウェブサイトから引用したものです

名前、略称デフォルト説明
--フォーマット、-f指定されたGoテンプレートを使用して出力をフォーマットする
--サイズ、-sタイプがコンテナの場合、ファイルの合計サイズを表示します。
- タイプ指定されたタイプのJSONを返す

上記の表に示すように、--type はコンテナ、イメージなどの docker オブジェクト タイプを指定するために使用されます。これは、コンテナとイメージの名前が同じ場合に使用できますが、あまり使用されません。たとえば、マシン上のコンテナの名前が redis で、イメージが redis:latest の場合、次のコマンドを使用してイメージ情報を表示できます。 type パラメータが使用されない場合は、コンテナ情報が返されます。

# redis:latest イメージ情報を表示 docker inspect --type=image redis

# redisコンテナ情報を表示する docker inspect redis

--size はコンテナのファイル サイズを表示するために使用されます。このパラメータを使用すると、出力に SizeRootFs と SizeRw が含まれます (この 2 つの値の意味はまだよくわかりません。詳しい方がいらっしゃれば教えていただけると幸いです)。

上記の 2 つのパラメータはほとんど使用されません。 --format は最も実用的で、より頻繁に使用されます。テーブルの説明から、渡されるパラメータ値は Go 言語のテンプレートである必要があることがわかります。これは非常に強力で、Go 関数の多くの操作を実行できます。私はまだ Go 言語を使い始めたばかりなので、間違いを避けるために、ここではそのアクロバットについてあまり詳しく説明しません。以下では、よく使用されるものについて説明します。

練習する

実際には、ディレクトリのマウント情報やネットワーク情報など、情報の一部のみを表示する必要がある場合がよくあります。 docker inspect container を直接入力すると、コンテナのすべての情報が出力されますが、これは肥大化しているように見え、コマンドラインでページをめくるのには不便です。 この時点で、--format の実用性が反映されます。実際の一般的な操作は次のとおりです。

ディレクトリマウント情報を表示する

次のコマンドを入力してコンテナのマウント情報を出力すると、ホストマシン上のコンテナ内の各ディレクトリの具体的なマウント場所を確認できます。

docker examine --format="{{json .Mounts}}" コンテナ

パラメータ内の json は Go 言語のメソッド名であり、その後にマウントの値が json に変換されて続きます。 jsonを削除することも可能です。
この入力がまだあまり良くないと思われる場合は、Python の json モジュールや jq を使用して出力を美しくするなど、json をさらに処理することができます。コマンドは次のとおりです。

#Python の json モジュールを使用してコンテナーを美しくする docker examine --format="{{json .Mounts}}" container | python -m json.tool

#jq を使用してコンテナーを美しくする docker inspect --format="{{json .Mounts}}" | jq

コンテナネットワーク情報を表示する

ネットワーク情報を表示するには、次のコマンドを使用します。

#完全なネットワーク情報を表示する docker examine --format="{{json .NetworkSettings}}" container | jq

#ネットワークポートマッピングを表示 docker examine --format="{{json .NetworkSettings.Ports}}" container | jq

# コンテナのネットワーク IP、ゲートウェイ、その他の情報を表示します。docker examine --format="{{json .NetworkSettings.Networks}}" container | jq

拡張学習

興味があれば、この --format パラメータもフル活用できます。これは Go のテンプレート構文であり、ほぼ Go コードを記述できます。たとえば、上記のコマンドでは、json は go のメソッド名です。

したがって、他の Go メソッド (range、split など) を組み合わせてアクロバットな操作を実行することもできますが、この記事ではその方法については説明しません。

参考文献
Docker公式ドキュメント

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

以下もご興味があるかもしれません:
  • CentOS 7でのDockerのインストール方法とコマンド操作方法を詳しく解説
  • Docker クリーンアップ コマンド コレクション
  • Docker runコマンドの使い方の詳しい説明
  • コンテナイメージをクリアするためによく使用されるDockerのコマンドの概要
  • ファイルを変更した後、Docker を再起動する必要がありますか (コマンドの詳細)
  • Docker の基礎: Dockerfile コマンドの詳細な説明
  • Dockerサービスコマンドの詳しい説明(まとめ)
  • Dockerfile の一般的なコマンドの概要
  • Docker 共通コマンドまとめ(実践編)
  • Dockerテスト中にコマンドが完了できない問題の解決策
  • Docker共通コマンド操作方法

<<:  WeChatアプレットはシンプルな計算機を実装する

>>:  MySQL パフォーマンス チューニングについて知っておくべき 15 個の重要な変数 (要約)

推薦する

XHTML+CSS Web ページ作成における美しいスタイルシートの適用

これはかなり前に書かれた記事です。今となっては、その中の考え方は学ぶ価値があるように思えます。jb5...

LinuxシステムにTomcatをインストールし、サービスの起動とシャットダウンを構成する

Linuxシステムでサービスの起動とシャットダウンを構成する1. コマンドcd /etc/init....

CSS3 で背景ぼかしを実現する 3 つの方法 (要約)

1. 通常の背景ぼかしコード: <スタイル> html, 体 { 幅: 100%; 高...

Docker で Tomcat、MySQL、Redis をインストールするための詳細な手順

目次DockerでTomcatをインストールするtomcatイメージを使用してコンテナを作成する(イ...

And キーワードを使用した MySQL の複数条件クエリ ステートメント

AND キーワードを使用した MySQL 複数条件クエリ。MySQL では、AND キーワードを使用...

vue-cropper を使用して vue で写真をトリミングする方法をご存知ですか?

目次1. インストール: 2. 使用方法: 3. 組み込みメソッド: 4. 使用方法:要約する公式サ...

Vue で Excel ストリーム ファイルをダウンロードし、ダウンロード ファイル名を設定する方法

目次概要1. URL経由でダウンロード2. aタグのダウンロード属性とblobコンストラクタを組み合...

CSS カウンターとコンテンツの概要

コンテンツ プロパティは CSS 2.1 で導入され、:before および :after 疑似要素...

Javascript における分割代入構文の詳細な説明

序文ES6 で初めて導入された「構造化代入構文」を使用すると、配列やオブジェクトの値を異なる変数に挿...

Vueのハッシュジャンプ原理の詳細な説明

目次ハッシュと履歴の違いハッシュ履歴getCurrentLocation の実装setupListe...

JavaScript 関数はランダムな色の検証コードをカプセル化します (完全なコード)

数字、文字、またはランダムな色の数字と文字の混合で構成される n 桁の確認コード。以下に完全なコード...

docker+jenkins+node.js の自動デプロイメント環境をゼロから構築する方法

このケースはCentOS 7システムに基づいていますDockerの使用経験がある人に適していますLi...

ウェブページ内でウェブテーブルやdivレイヤーが引き伸ばされる問題の解決策

<br />Web ページをデザインするときには、いつも不快なことに遭遇します。最も一般...

njs モジュールを使用して nginx 構成に js スクリプトを導入する

目次序文1. NJSモジュールをインストールする方法1: NJSモジュールを動的にロードする方法2:...