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 ES6コーディング標準の詳細な説明

目次1. ブロックスコープ1.1. let は var を置き換える1.2. グローバル定数とスレッ...

MySQL パフォーマンス ストレス ベンチマーク ツール sysbench の使い方の紹介

目次1. sysbenchの紹介#プロジェクトダウンロードアドレス: 2. Sysbenchのインス...

Dockerコンテナ内で2つのプロセスを開始するときのDockerfile実装コード

最近、cronスケジュールタスク用のdockerを作りたいと思っており、Dockerfileで次のよ...

webpack -v エラー解決

背景webpackのバージョンを確認したいのですが、webpack -vを実行するとエラーが報告され...

JavaScript でピンボール ゲームの Web バージョンを実装する

参考までに、JavaScriptのオブジェクトとメソッドを使用して実装されたWebピンボールゲームを...

Centos7 で ZooKeeper3.4 ミドルウェアを構築するための一般的なコマンドの概要

1.ダウンロードして解凍する1. Zookeeperの紹介分散サービス フレームワークとして、Zoo...

ツリー チャートの実装方法に関する Echarts チュートリアル

ツリーマップは主にツリーのようなデータ構造を視覚化するために使用され、特殊なタイプの階層です。これを...

開発者にとって必須の Docker コマンドの概要

目次Docker入門Docker環境のインストールDockerイメージの共通コマンド検索ミラー画像を...

Dockerの基本的なネットワーク構成の詳細な説明

外部アクセスポートをランダムにマップする -P フラグを使用すると、Docker は 49000 か...

Nginx Rewrite の使用シナリオと設定方法の分析

Nginx Rewriteの使用シナリオ1. URL アドレスジャンプ。たとえば、ユーザーが pm....

Nginx の realip モジュールの使い方の基礎学習

序文nginx モジュールには、公式とサードパーティの 2 種類があります。nginx のインストー...

Mybatis での動的 SQL ステートメント分析

この記事は主にMybatisでの動的SQL文の解析について紹介します。この記事のサンプルコードは非常...

nginx リクエスト ヘッダー データ読み取りプロセスの詳細な説明

前回の記事では、nginx がリクエスト ラインのデータを読み取って、リクエスト ラインを解析する方...

Ubuntu 20.04の新バージョンでルートユーザーを使用してシステムにログインする方法の詳細なチュートリアル

Ubuntu 20.04 では、デフォルトで root ログインが有効になっていないため、デスクトッ...

JS がビデオ弾幕効果を実現

これを実現するには、ES6 モジュール開発とオブザーバー モードを使用します。オブザーバー パターン...