docker system dfコマンド

イメージやコンテナ、ボリュームなどDockerが使用しているディスク使用量の内訳を確認するにはdocker system dfコマンドを使う。

$ docker system df

以下は実行例。

$ docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          20        6         5.092GB   3.698GB (72%)
Containers      14        0         577.5kB   577.5kB (100%)
Local Volumes   1         1         0B        0B
Build Cache     0         0         0B        0B

表示される各項目は以下の通り。

項目内容
TYPEリソースの種類(Images、Containers、Local Volumes、Build Cache)
TOTALリソースの総数
ACTIVE使用中のリソース数
SIZE使用しているディスクサイズの合計
RECLAIMABLE削除すると解放できるディスクサイズと割合

RECLAIMABLEは停止中のコンテナが使用しているイメージや、どのコンテナにも紐付いていないダングリングイメージなど、削除しても問題ない容量を表す。
docker system dfの実行結果を見ると、どの種類のリソースがディスクを圧迫しているかを把握できる。

詳細な内訳を見る(-v)

-vオプションを付けると、イメージやコンテナなど個々のリソースごとのディスク使用量を確認できる。

$ docker system df -v

以下はイメージの内訳の実行例。

Images space usage:

REPOSITORY   TAG      IMAGE ID       CREATED       SIZE      SHARED SIZE   UNIQUE SIZE   CONTAINERS
nginx        alpine   54f2a904c251   2 weeks ago   91.7MB    0B            91.67MB       4
alpine       latest   28bd5fe8b56d   3 weeks ago   13.5MB    9.31MB        4.185MB       1

SHARED SIZEは他のイメージとレイヤーを共有しているサイズ、UNIQUE SIZEはそのイメージ固有のサイズを表す。
CONTAINERS列で、そのイメージを使用しているコンテナの数を確認できる。

イメージ以外にもコンテナ、ボリューム、ビルドキャッシュの内訳がそれぞれ表示される。

Containers space usage:

CONTAINER ID   IMAGE           COMMAND            LOCAL VOLUMES   SIZE      CREATED         STATUS                  NAMES
1370f50ee710   alpine:latest   "sleep infinity"   1               8.19kB    11 seconds ago  Exited (137) ...        docker-system-df-test

Local Volumes space usage:

VOLUME NAME                    LINKS     SIZE
docker-system-df-test-volume   0         0B

Build cache usage: 0B

CACHE ID   CACHE TYPE   SIZE      CREATED   LAST USED   USAGE     SHARED

出力形式を指定する(–format)

--formatオプションを使うと、表示する項目や形式を指定できる。

$ docker system df --format "table {{.Type}}\t{{.TotalCount}}\t{{.Size}}\t{{.Reclaimable}}"
TYPE            TOTAL     SIZE      RECLAIMABLE
Images          20        5.092GB   3.698GB (72%)
Containers      14        577.5kB   577.5kB (100%)
Local Volumes   1         0B        0B
Build Cache     0         0B        0B

jsonを指定するとJSON形式で出力できる。

$ docker system df --format json

不要なデータを削除する

RECLAIMABLEのサイズが大きい場合は、不要なイメージやコンテナを削除するとディスク容量を解放できる。
削除方法は【Docker】不要なコンテナ、イメージ、ネットワーク、ボリュームの一括削除 を参照。

参考

» docker system df