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 の応用の概要

推薦する

JSオブジェクトの走査順序の詳細な説明

JavaScript ではオブジェクトを走査する順序は固定されていないと聞いたことがある人もいるかも...

Node.js とブラウザのグローバル オブジェクトの違いの概要

Node.js では、.js ファイルは完全なスコープ (モジュール) です。したがって、var に...

時間のかかるDockerエラーのトラブルシューティングプロセス記録

目次起源環境情報トラブルシューティングのプロセス要約する起源顧客は CentOS をベースにしたカス...

CSS3 での 2D および 3D 変換の実装

CSS3 は、要素の 2D 平面変換と視覚的な 3D 空間変換を実装します。2D 変換はより頻繁に使...

Vueはメニューナビゲーションを実装するためにelement-uiを使用します

この記事では、Element-uiを使用してメニューナビゲーションを実装するVueの具体的なコードを...

Vue の nextTick について話す

データが変更されても、DOM ビューはすぐには更新されません。変更直後にノードまたはその値を取得しよ...

MAC 上の MySQL の初期パスワードを忘れた場合の対処方法

MACでMySQLの初期パスワードを忘れた場合の解決策を参考までに共有します。具体的な内容は次のとお...

nginx と Tencent Cloud の無料証明書を使用して https を作成する方法

httpsを取得する方法を勉強しています。最近、Tencent Cloud が提供する無料の SSL...

MySQL で大文字と小文字を区別しないように設定する方法

mysql は大文字と小文字を区別しないように設定されていますウィンドウズmysqlがインストールさ...

MySQLの基本操作学習ノートテーブル

テーブルを作成テーブルテーブル名を作成create table if not exists 表名 m...

Linux ログ内のキーワードとその前後の情報を検索する方法の例

日常業務では、ログを表示する必要がよくあります。たとえば、 tail コマンドを使用してログをリアル...

vue+echarts で中国地図のフロー効果を実現する (詳細な手順)

@vue+echarts は中国地図のフロー効果を実現します#レンダリングを見てみましょう手順:コ...

JS ES6 スプレッド演算子の魔法のような使い方

目次1. 属性を追加する2. 複数のオブジェクトを結合する3. オブジェクトのプロパティを削除する4...

Docker-compose を使用して GitLab をデプロイする方法

Docker-compose は GitLab をデプロイします1. Dockerをインストールする...

CSS の子要素の Z インデックスと親要素の兄弟ノードの階層問題を解決する

1. 問題の出現フラット リストを作成しました。リストの一部には、マウスをホバーすると表示されるポッ...