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

推薦する

TSで最も一般的な宣言マージ(インターフェースマージ)

目次1. マージインターフェース1.1 非関数メンバー1.2 関数メンバー序文:今日お話ししたいのは...

Dockerコンテナのタイムゾーン調整操作

Docker コンテナのタイムゾーンがホストマシンと一致しているかどうかを確認するにはどうすればよい...

Dockerの高可用性構成の詳細な説明

Docker の作成Docker Compose は、管理対象コンテナをプロジェクト、サービス、コン...

postcss-pxtorem モバイル適応の実装

コマンドを実行してプラグインpostcss-pxtoremをインストールします npm インストール...

MySQLクエリ条件の一般的な使用法の詳細な説明

この記事では、例を使用して、MySQL クエリ条件の一般的な使用方法を説明します。ご参考までに、詳細...

CSS ファイルをインポートする 4 つの方法 (インライン、インライン、外部、インポート) の詳細な説明

CSS インポート方法 - インラインスタイルタグ属性を通じて、CSSのキーと値のペアがタグに直接書...

vue3を使用して人間と猫のコミュニケーションアプレットを実装する

目次序文プロジェクトを初期化するデザインコードの実装オンデマンドロードオーディオを再生録音長押しイベ...

シーケンス関数を実装する MySQL コード

MySQLはシーケンス関数を実装する1. シーケンスレコードテーブルを作成する テーブル `sys_...

WeChatアプレットはシンプルなチャットルームを実装します

この記事では、WeChatアプレットの具体的なコードを共有し、簡単なチャットルームを実装します。具体...

ethers.js を使用して Solidity スマート コントラクトをデプロイする方法

Ethereum 上で DApps を開発したことがある場合は、フロントエンド JavaScript...

HTML ページはダーク モードの実装をサポートします

2019年から、AndroidとiOSの両方のプラットフォームでダークモードが使用され始めました。も...

Ubuntu で起動時に自動的に起動するシェル スクリプトを作成する (推奨)

スクリプトを書く目的は、さまざまなサービスを手動で起動しなくて済むようにすることです(怠惰のためでも...

MySQL 5.7 の同時レプリケーションにおける暗黙のバグの分析

序文当社の MySQL オンライン環境のほとんどはバージョン 5.7.18 を使用しています。このバ...

Dockerコンテナの状態変換の実装

Dockerコンテナの状態遷移図2度目の実戦 [root@localhost ~]# docker ...

JS 面接の質問: forEach はループから抜け出すことができますか?

この質問をされたとき、私は無知で頭が真っ白になりました。もちろん、正しく答えられませんでした。私はず...