お仕事にてDocker (Pythonアプリケーション) のイメージサイズの削減に挑戦する機会がありました。その調査で用いた dive について紹介します。
diveとは
diveはイメージやレイヤのコンテンツ (ファイル) を可視化するためのツールで、主にイメージサイズの削減のための調査に用いられます。
MacであればHomebrewでインストールできます。
$ brew install dive
diveを使った調査
例として python:3.9-slim-buster をdiveで覗いてみます。dive {image_name}:{image_tag}
でOKです。
$ dive python:3.9-slim-buster
すると2カラムのコンソール画面が開きます。
Layers (左上) がDockerのレイヤとなっており、選択したレイヤのファイルがCurrent Layer Contents (右) に表示されます。
Layersで2つ目のレイヤを選択します。このレイヤで7MBの増です。
Current Layer Contentsではこのレイヤでのファイルがツリー表示されます。緑文字が増加したファイル・ディレクトリを表しています。ドリルダウンもできるので、不意に増えているファイルなどが調査できます。