【Docker】Docker Desktop 上で Docker 関連の何がマシンの容量をどれくらい占めているかを GUI で表示する Disk Usage の紹介

  • 2023年2月8日
  • 2023年2月8日
  • Docker

 Docker はマシンの容量を食いやすいです。恐らくこれは仮想環境という差分管理してもなお大きくなりがちなものを多く取り扱えるのが原因です。少なくとも自分はそんな感じで雑に増えて雑に消してをよく繰り返しています。

 Docker がマシンの容量をどれくらい使っているかを確認するdocker system dfというコマンドがあります。これを実行すると例えば次の様になります。

>docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          57        32        19.04GB   12.15GB (63%)
Containers      42        10        299.1MB   297.9MB (99%)
Local Volumes   29        14        2.639GB   208MB (7%)
Build Cache     625       0         20.77GB   20.77GB

 Disk Usage はこのコマンドの結果と同じものを見やすく表示し、容量空けを手軽に行えるようにショートカットが用意された Docker Desktop の拡張です。

 導入は次の画像の赤丸部にある様に Add Extensions で拡張追加画面を開き、”Disk”と検索し、見つかった拡張を”Install”を実行することでなされます。

 インストールが完了すると左側に Disk Usage のメニューができています。これをクリックして Disk Usage の画面を開くと次の画像の様になり Docker が各機能とカテゴリでどのくらい容量を使っているか一目でわかります。

 Reclaimable space は使用中の Docker の機能を壊さずに空けられる容量の総量です。実際には未使用だけれども寝かせていることに意味のあるコンテナ、イメージ、キャッシュもあるので本当の意味で削除して問題ない容量はもういくらか少ないです。右側にある Reclaimable space ボタンを押すと次の様に Reclaimable space として扱われる範囲をざっくり削除するための操作と説明が表示されます。


 
 それぞれの意味は次の通りです。

  • Stopped containers(停止済みのコンテナ)
  • Unused images(使用していないイメージ)Images not used by any running or stopped containers(どのコンテナでも使われていないイメージ).
  • Dangling images(宙ぶらりんイメージ)
    Images not tagged and not referenced by any container.(タグがなく、どのコンテナでも使われていないイメージ。イメージのビルド失敗で度々残るアレ)
  • Build cache(イメージを生成する際のキャッシュ)
    Deleting build cache will increase the time required to build images in the future.(キャッシュを削除すると再びイメージを生成する際により多くの時間が必要になります)
  • Unused volumes(未使用のボリューム)
    Removing a volume will permanently delete its contents.(ボリュームを削除するとその中身は永久に削除されます)
    Volumes not used by any container(どのコンテナからも使用されていないボリュームが対象です)

 雑に消してもそうそう問題にならないのは Build cache と Dangling images です。Build cache はあくまでキャッシュですのでやらかしても時間がかかるくらいで 済むのがほとんどです。稀に外部の何かに依存していてリンク切れなどでビルドの直しが必須になる時があります。Dangling images は無名のイメージをそのまま使う様な運用をしていなければ削除しても全く問題ないです。実は使ってたりすると再構築に時間がかかったりします。うかつに消すと特に危険なのが Unused volumes です。のちにデータベースの中身やログなどを参照したい機会が出てきた時、参照できなくなってしまうのでそういった時に困ります。保存しておく必要があるのであればボリュームを使わなくなる段階で Docker 外に素のファイルとして残しておいた方が無難です。

 Disk Usage を導入することで気軽にコマンドを打つ必要もなく Docker の容量を管理できます。Docker Extension には他にも便利な拡張がそろっているので色々探してみるのも面白いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG