LoginSignup
6
8

More than 3 years have passed since last update.

【Docker修行④】管理・分析ツールの「dive」を利用したDockerイメージの効率的な高速化と最適化

Last updated at Posted at 2019-09-23
  • 1年にも満たないエンジニア生活のため、雲の上の存在だと思っていて距離を取っていた「Docker」の習得を目指す記事第四弾。
  • 「利用するツールやサービスの増大による最大の利点は、けがれなき無垢なロゴキャラとの対面である」という気高き名言の情報元を、長時間調査。
  • 今回は、管理・分析ツールを利用した、効率的なDockerイメージの縮小化・最適化を図ることにしよう。

概要や特徴

  • Go製のDockerイメージの分析・最適化ツール
  • 作成イメージの容量解析や構造情報の詳細化等、構成の理解やイメージ効率化に役立つ。
  • 主な特徴としては下記。
    • 階層(レイヤー)ごとの詳細情報の可視化。
    • イメージ容量(サイズ)の最適化・無駄情報の可視化。
    • イメージの作成(ビルド)と分析の同時実行。
    • CIシステム統合による、イメージテスト(解析)の実行。

結果

  • 下記のように作成イメージを指定するだけで、各イメージやレイヤー(階層)の容量やフォルダ構造等の詳細情報を管理・確認することができる。

dive.png

image.png

環境

  • Mac OS X 10.13.4
  • Homebrew 2.1.4
    • ※Homebrew未導入の場合、こちらを参考にインストールする。
  • Docker version 18.09.2

インストール

Mac

  • Macでのdiveインストールは、下記のコマンドをうつ。
$ brew install dive

Windows

その他環境

  • その他環境(Linux)でのインストールは、こちらを参考にする。

基本利用

分析画面構成

  • diveでのDockerイメージ分析の流れとしては主に下記。
    • 1. イメージ指定したdiveコマンドで分析画面を起動
      • 例: dive sample_app:latest
    • 2. 起動後、各構造情報やイメージサイズを確認
    • 3. 確認後、無駄容量の削減や効率化等の最適化を考える。
  • これらの流れの際に確認する「分析画面」の基本的な構成は下記。

image.png

エリア 内容
Layers 各レイヤー(階層)ごとの容量・出力情報
Layer Details 各レイヤー(階層)ごとの詳細情報
Image Details イメージの詳細情報
Image efficiency score」はイメージ効率
potential wasted space」は無駄容量
Total image space」は総容量
Aggregated Layer Contents 各レイヤー(階層)のフォルダ情報

コマンド

  • diveを利用してDockerイメージ分析を行う際の基礎的なコマンドとしては下記。
コマンド 内容
dive イメージ:タグ名 作成イメージの分析画面起動。
※指定するイメージはdocker images等で確認。
例: dive nginx:1.15.6
例: dive sample_app:latest
dive build -t タグ名 作業パス イメージのビルド(作成)と分析を同時に行う。
イメージをビルド(作成)するためにDockefile等が必要
例: dive build -t latest .
dive version バージョン確認
dive help ヘルプページ確認

分析画面ショートカット

  • 分析画面では、主にキーボード操作によるもののため、基本的な操作一覧は下記。
キー 内容
tab 詳細画面とファイル構造画面の切り替え
Ctrl + F ファイルフィルタ。検索が可能。
Ctrl + L 階層(レイヤー)変更の表示
Ctrl + M 変更ファイルの表示
Ctrl + B 属性の表示切り替え

まとめ

  • 今回は、ツールを利用した縮小化や最適化ということで、今まで重量級の無駄容量を抱えさせていたことを、反省と同時に一種の恋愛感情を感じながら記事を書く。
  • 「将来的に、人類最適化ツールが出現したら、髪は残してくれるだろうか」というような夢想を、日常の八割の時間を利用して、全力で脳内議論。
  • 次回は、徐々に理解できてきているインフラ関連技術のより魅力的なサービスを調査することにしよう。

参考サイト

6
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8