Dockerイメージ解析ツールのダイブ原理解析

Dockerイメージ解析ツールのダイブ原理解析

今日は、Docker イメージ、各レイヤーの内容を調べ、Docker/OCI イメージのサイズを縮小する方法を見つけるためのオープン ソース ツールをお勧めします。そのツールとは、ダイブです。

ツールのアドレス: https://github.com/wagoodman/dive、スター数: 22k+。

このツールを使用すると、画像の各レイヤーに何が含まれているかを明確に確認できるため、下の図に示すように、それが必要かどうかを分析できます。

特性

このツールの主な機能は次のとおりです。

  • Docker イメージの内容をレイヤー別に表示します。
  • 各レイヤーの変化を指摘します。
  • 「ミラーの効率」を評価する。
  • 高速なビルド/分析サイクル。
  • CI との統合。
  • 複数のイメージとコンテナ エンジンをサポートします: docker、docker-archive、podman など。

インストールと使用方法

1. diveを実行するには主にdockerを使用します。具体的な使用方法については、公式Webサイトを参照してください。

https://github.com/wagoodman/dive

2. ダイビングイメージを引き出す

docker pull quay.io/wagoodman/dive:latest

3. DockerでDiveを実行し、イメージレイヤー情報を表示します。

docker run --rm -it \
-v /var/run/docker.sock:/var/run/docker.sock \
quay.io/wagoodman/dive:最新\
nginx:最新

注: 最後の nginx:latest は表示するイメージ名ですが、イメージ ID に直接置き換えることもできます。オープン インターフェイスは次のとおりです。

キーバインディング

キーバインディング説明
<kbd>Ctrl + C</kbd>やめる
<kbd>Tab</kbd> または <kbd>Ctrl + Space</kbd>レイヤーとファイルツリービューを切り替える
<kbd>Ctrl + F</kbd>ファイルのフィルタリング
<kbd>Ctrl + A</kbd>レイヤービュー: 集約された画像の変更を表示する
<kbd>Ctrl + L</kbd>レイヤービュー: 現在のレイヤーの変更内容を表示します
<kbd>スペース</kbd>ファイルツリービュー: ディレクトリの折りたたみ/展開
<kbd>Ctrl + A</kbd>ファイルツリービュー: 追加されたファイルの表示/非表示
<kbd>Ctrl + R</kbd>ファイルツリービュー: 削除されたファイルの表示/非表示
<kbd>Ctrl + M</kbd>ファイルツリービュー: 変更されたファイルの表示/非表示
<kbd>Ctrl + U</kbd>ファイルツリービュー: 変更されていないファイルの表示/非表示
<kbd>PageUp</kbd>ファイルツリービュー: ページを上にスクロール
<kbd>PageDown</kbd>ファイルツリービュー: ページを下にスクロールします

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

以下もご興味があるかもしれません:
  • 廃止された Docker は Podman に置き換えられますか?
  • Podmanはコンテナを自動的に起動し、Dockerと比較します

<<:  MySQLで大きなテーブルを正常に削除する方法の詳細な説明

>>:  ウェブデザイン研究における XHTML の応用の概要

推薦する

XHTML チュートリアル: Transitional と Strict の違い

実際、XHTML 1.0 は、Transitional DOCTYPE と Strict DOCTY...

CentOS7にsshをインストールして設定する

1. openssh-serverをインストールする yum インストール -y openssl o...

MySQLサービスが起動しても接続されない問題の解決策

mysql サービスは開始されていますが、接続できません。この問題を解決するにはどうすればよいでしょ...

Vueはビデオ再生を実装するためにビデオタグを使用します

この記事では、ビデオタグを使用してビデオ再生を実装するVueの具体的なコードを参考までに共有します。...

LNMP を展開して HTTPS サービスを有効にする方法に関するチュートリアル

LNMP とは: Linux+Nginx+Mysql+(php-fpm、php-mysql)つまり、...

WIN2008 サーバーのコマンド ラインを使用して IIS7 コンポーネントをインストールおよびアンインストールする方法

注意: .NET FrameWork はコア モードで実行できないため、コア インストール モードの...

MySQL の自動増分 ID に関するいくつかの小さな問題の要約

以下の質問はすべて InnoDB ストレージ エンジンに基づいています。 1. 最も大きな ID を...

Vue はアップロードされた画像に透かしを追加する機能を実装します

この記事では、Vueでアップロードされた画像に透かしを追加する具体的な実装コードを参考までに共有しま...

CSS3 のエラスティック レイアウトでの em の使用の概要: 1em は何ピクセルですか?

私は長い間 CSS を使用してきましたが、Web 要素の関連属性を設定するために常に「px」を使用し...

Vue ミックスインの使い方の詳しい説明

目次Vue ミックスインの使用ミックスインでのデータアクセスミックスイン/index.jsホーム.v...

Win10でのJDKのインストールと環境変数の設定に関する詳細なチュートリアル

目次序文1. 準備2. インストール3. 環境変数を設定する1. 「新規」をクリックすると、ポップア...

Dockerコンテナ監視とログ管理の実装プロセス分析

Docker の導入規模が大きくなると、コンテナを監視する必要があります。一般的に、Docker に...

フレックスレイアウトとposition:absolute/fixedの競合の詳細な説明

以前、プロジェクトを開発しているときに、flex レイアウトと position:absolute/...

Linux dirnameコマンドの具体的な使い方

01. コマンドの概要dirname - ファイル名からディレクトリ以外のサフィックスを削除しますd...

CentOS で新しいユーザーを作成し、キーログインを有効にする方法

目次新しいユーザーを作成する新規ユーザーを承認する新規ユーザーのSSHキーログインを有効にする他のS...