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 個の重要な変数 (要約)

推薦する

JavaScript インタビュー: 配列の平坦化メソッドを実装する方法

目次1 配列のフラット化とは何ですか? 2 JS標準ライブラリの配列フラット化メソッド3 フラットメ...

Ubuntu でホームディレクトリを新しいパーティションに移行する詳細なチュートリアル

ユーザーのホーム ディレクトリがどんどん大きくなってきたら、ホーム ディレクトリを新しいパーティショ...

テキスト ファイルの並べ替えに役立つ Awk コマンドラインまたはスクリプト (推奨)

Awk は、ソートを含む他の一般的なユーティリティによって実行できるいくつかのタスクを実行できる強...

仮想マシンのディスクサイズを拡張する方法

Vmvare が仮想マシンのディスク サイズを設定した後、ディスク領域が不足していることがわかりまし...

JavaScript を使用して文字列内の最も繰り返しの多い文字を取得する方法

目次トピック分析する使用目的解決:コードは次のように実装されます。分析:配列とポインタ解決:コードは...

mysql replace into の使用法の詳細な説明

replace ステートメントは、一般的に insert ステートメントに似ています。ただし、テーブ...

Docker環境でMySQLを実行し、Binlogを有効にしてマスタースレーブ同期を構成する方法

同じサーバーで、Docker を使用して Mysql のマスター スレーブ同期設定をシミュレートしま...

Nginx 502 Bad Gateway エラーの原因と解決策

Nginx 502 Bad Gateway エラーに何度か遭遇しました。ここでメモしておこうと思いま...

フロントエンドのパフォーマンス最適化 - フロントエンドエンジニアが話し合うべき問題点

はじめに<br />前回の記事「私の CSS アーキテクチャ コンセプト」では、公園で友...

SSHのssh-keygenコマンドの基本的な使い方の詳細な説明

SSH 公開鍵認証は、SSH 認証方式の 1 つです。 SSH パスワードフリーのログインは公開鍵認...

Zabbix Agent2を使用してOracleデータベースを監視する方法

概要zabbix バージョン 5.0 以降では、zabbix-agent2 という新しい機能が追加さ...

Linux システム (CentOS7 インストール) に JDK8 をインストールするための詳細なチュートリアル

JDKのインストールシステムのインストールについてはあまり詳しく説明しません。インストール手順はオン...

レスポンシブ Web をデザインするにはどうすればいいですか?レスポンシブウェブデザインのメリットとデメリット

最近レスポンシブ デザインについて学んでいて、これについていくつか整理してみました。写真の一部はイン...

Nginx tp3.2.3 404 問題の解決

最近、Apache を nginx に変更しました。TP プロジェクトを実行に移すと、404 エラー...

Dockerがプライベート倉庫Harborを構築する手順

港Harborは、エンタープライズレベルのプライベートDockerイメージリポジトリを構築するための...