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】不要なコンテナ、イメージ、ネットワーク、ボリュームの一括削除
を参照。
参考
\第一線のプログラマーの行動原理を学べる!/
