Dockerイメージとレイヤー内容を調べるツール「Dive」
(github.com/wagoodman)Docker イメージ探索ツール dive
- Docker イメージの分析:
diveコマンドとイメージのタグ / ID / ダイジェストを使って Docker イメージを分析可能。 - Docker コマンドとして直接利用:
aliasを設定することで、diveを Docker コマンドとして直接使用可能。 - Macbookでのビルド: Docker コンテナエンジンのみをサポートする Macbook でも、
diveを使ってイメージのビルドと分析が可能。 - CI パイプライン統合:
CI=true環境変数を設定することで、UI なしでイメージを分析し、無駄な領域を最小化可能。
基本機能
- レイヤーごとの Docker イメージ内容表示: 選択したレイヤーの内容と、それ以前のレイヤーを結合した内容を右側で確認可能。
- 各レイヤーで変更された内容を表示: ファイルツリー内で変更、修正、追加、または削除されたファイルを表示。
- 「イメージ効率」を推定: イメージに含まれる無駄な領域の量を推定し、効率スコアと無駄になったファイル領域を提供。
- 高速なビルド / 分析サイクル:
dive build -t some-tag .コマンドで Docker イメージをビルドした直後に分析可能。 - さまざまなイメージソースとコンテナエンジンをサポート:
--sourceオプションでコンテナイメージの取得元を選択可能。
インストール方法
- Ubuntu/Debian:
curlとaptを使ってdiveをインストール。 - RHEL/Centos:
curlとrpmを使ってdiveをインストール。 - Arch Linux:
pacman経由でインストール可能。 - Mac: Homebrew または MacPorts を使うか、リリースページから Darwin ビルドをダウンロード。
- Windows: 最新リリースをダウンロード。
- Go tools: Go バージョン 1.10 以上が必要で、
go getでインストール。 - Nix/NixOS:
nix-envを使ってインストール。 - Docker:
docker pullでイメージを取得し、Docker ソケットファイルを含めて実行。
CI 統合
- 環境変数
CI=trueの設定: UI なしで Docker イメージを分析し、通過 / 失敗を戻り値コードで示す。 .dive-ciファイルによるルール設定: 効率性、無駄な領域の量および比率に応じて通過 / 失敗基準を設定可能。
キーバインド
- さまざまなキーバインドにより、UI 内でレイヤーおよびファイルツリービューを操作可能。
UI 設定
- 設定ファイルを通じてさまざまなオプションをカスタマイズし、
diveの動作を変更可能。
GN⁺の意見
- 重要性:
diveは Docker イメージのサイズを最適化し、無駄を減らすのに非常に有用なツール。これはクラウドインフラのコスト削減と効率的なリソース管理に貢献しうる。 - 興味深さ: Docker イメージの各レイヤーを詳細に分析し、変更点を視覚的に確認できる点は、開発者やシステム管理者にとって非常に興味深い機能。
- 役立つ点: CI/CD パイプラインに
diveを統合することで、自動化されたイメージ分析を通じて継続的な品質管理と効率向上を図れる。
1件のコメント
Hacker Newsの意見
Crane と go-containerregistry ライブラリ
Dive の有用性
Dive の隠れた特徴
GoLang を使う理由への質問
Dive の実用性
Google の container-diff ツール
他の優れた TUI ターミナルツール
Docker が tar アーカイブを使う理由
Dive の驚くべき効果