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

推薦する

Vue+js はビデオのフェードインとフェードアウト効果を実現します

Vue+jsはビデオのフェードインとフェードアウトを実現します。参考までに、具体的な内容は次のとおり...

jQueryは要素を追加した後に元のイベントが実行されない問題を解決します

まずエラーコードを見てみましょう。 html: <テーブルボーダー="1"...

jsは水平および垂直スライダーを実現します

最近、練習プロジェクトをしていたときにスライダーを使う必要があったので、調べてみました。まず、水平ス...

JavaScript strictモードの概要 strictを使用する

目次1. 概要1.1 厳密モードとは何ですか? 1.2 厳密モードの目的2. 厳密モードを有効にする...

MySQL の 4 つのトランザクション分離レベルの詳細な説明

この実験のテスト環境: Windows 10+cmd+MySQL5.6.36+InnoDB 1. ト...

Centos6.5 で MySQL 5.7.19 をインストールして設定する方法

Centos6.5にmysql5.7.19をインストールするための詳細な手順は次のとおりです。 1....

Vue コンポーネントでのアンチシェイクとスロットリングの使用例の分析

入力ボックスへのユーザー入力、ウィンドウのサイズ変更、スクロール、Intersection Obse...

HTML における要素の水平および垂直中央揃えに関する議論

ページをデザインするときには、ログイン ウィンドウを中央に配置するなど、DIV を中央に配置し、ペー...

docker で golang イメージに基づいて ssh サービスを構築する方法

以下は、docker の golang イメージに基づいて ssh サービスを構築するためのコードで...

トラフィックの多いウェブサイト向けのソリューション

まず、サーバーのハードウェアが現在のトラフィックをサポートするのに十分かどうかを確認します。通常の ...

innerHTML を理解する

<br />関連記事: innerHTML HTML DOM insertRow() メ...

Vue で eslint 検出をオフにする方法 (複数の方法)

目次1. 問題の説明2. 問題解決1. 問題の説明Vue プロジェクトを開発する場合、作成時に誤って...

Vue2.xは、ユーザーのログインと終了を実装するためにルーティングナビゲーションガードを設定します。

目次序文1. ルーティングナビゲーションガードを設定する1. グローバルナビゲーションガード2. ロ...

JavaScriptのイベントループの仕組みの分析

目次序文: 1. イベント ループとタスク キューの理由: 2. イベントループメカニズム: 3. ...

hasLayout によって発生する CSS バグの一覧

IE には長い間問題がありました。誰もがテストを受けたとき、誰もが笑顔でしたが、それはただのニヤニヤ...