IPFactory Advent Calender 2023 4日目の記事です。
はじめに
どうも、色んな人のブログを読んでにちゃにちゃしているpizaです。
先日、Mediumというブログサイトで、Docker Image を分析するツール「dive」について取り上げたブログを見つけました。イメージの分析という点が面白そうだなと思い、実際使用してみると想像以上でした!!!
ということで、今回はDocker Image分析ツール「dive」の概要と基本操作についてまとめました。気になる方は是非お手元でお試しください。
↓影響を受けたブログ
diveについて
dive とは、Docker Image、レイヤーの内容を調査し、Docker/OCI イメージのサイズを縮小するためのツールである。
実施環境の準備
ディレクトリ
├── Dockerfile
└── hello.txt
Docker file
- パッケージのインストール
- ファイルの記述
- ファイルの上書き
FROM ubuntu:20.04
RUN apt update && \
apt install -y vim
RUN echo 'hello world' > ~/hello.txt
COPY ./hello.txt /root
上書き用ファイル
You did a good job of overwriting it.
ツールのインストール
公式のGitHubから、自分の環境に合わせてインストールする。
https://github.com/wagoodman/dive#installation
イメージを用意する
分析したいイメージを手元に用意する。特にない場合は、先のDocker fileと以下のコマンドでimageを作成。
$ docker image build -t ubuntu_dv .
dive実行
イメージ タグ/ID/ダイジェストを指定し、dive を実行。
$ dive <image name>
## 例:
$ dive ubuntu_dv
画面構成
-
Layers
:どのレイヤーを調査するかを選択 -
Layer Details
: そのレイヤーでなにを実行しているかを表示 -
Current Layer Contents
: Layersで指定したレイヤーに含まれているファイルツリーをサイズと共に表示 -
Image Details
: イメージ全体の情報を表示
Tab
でLayers
とCurrent Layer Contents
の切り替え、Ctrl+F
でファイル名検索などが可能。
操作と補足
1. Space
でフォルダを閉じる
Current Layer Contents
を選択時、開かれているディレクトリをSpace
で閉じることが可能。また、Ctrl+Space
は一括ですべてのファイルを閉じることができる。しかし、一部のMacPCではこの機能を活用することが出来ないと言われている。
2. vim インストールについて
vim
をインストールする際に、apt upgate
を行っている。これにより、様々なファイルが追加、上書きされていっている。追加されたファイルは緑色、その他の変化(上書きや削除)があったファイルはオレンジ色になる。
3.フィルターの掛け方
2つ目のレイヤーではhello.txt
を作成する命令がある。しかし、ファイル保存先を絶対パスではなく、相対パスで指定しているため、直感で見つけることは少し面倒になる。その時使えるのが、Ctrl+F
のフィルター機能だ。
上の画像のようにフィルター機能を利用すると瞬時にファイルの位置を特定することが出来る。
外部からの上書きについて(おまけ)
apt update
ではファイルの上書きがオレンジで表示されているのに対し、COPY
を活用したファイルの上書きは文字が緑で表示されている。これにより、外部からのファイルの上書きはファイル更新ではなく、ファイルの追加として認識されるのだと推測される。
さいごに
いかがでしたでしょうか。実際手元で動かしてみると、想像以上に使いやすいツールだと思いませんか??自分のImageだけでなく、Docker Hub上にある誰かのImageも見ることが出来るので、Dockerの勉強にも使えると思っています。というか、私はその使い方をしています、、、
それでは、これからも楽しい Docker Life を過ごしましょう!
最後までお読みいただき誠にありがとうございました。