概要
Dockerを使っていると、Build Cacheや不要なイメージ、コンテナ、ボリュームがたまりディスク容量を圧迫することがある。本記事では、これらの不要なデータを削除する方法を紹介する。
動作確認環境
- Ubuntu 22.04 x86_64
- Docker
Client: Docker Engine - Community Version: 28.2.2 API version: 1.50 Go version: go1.24.3 Git commit: e6534b4 Built: Fri May 30 12:07:28 2025 OS/Arch: linux/amd64 Context: default Server: Docker Engine - Community Engine: Version: 28.2.2 API version: 1.50 (minimum version 1.24) Go version: go1.24.3 Git commit: 45873be Built: Fri May 30 12:07:28 2025 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.7.27 GitCommit: 05044ec0a9a75232cad458027ca83437aae3f4da runc: Version: 1.2.5 GitCommit: v1.2.5-0-g59923ef docker-init: Version: 0.19.0 GitCommit: de40ad0
方法
現状の確認
以下のコマンドで何に容量を使っているか確認する。
docker system df
以下のように、TYPEごとに利用容量を確認できる。また、RECLAIMABLEは削除可能な容量の目安である。
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 142 19 773.7GB 685.1GB (88%)
Containers 29 13 28.29GB 28.22GB (99%)
Local Volumes 7 7 51.41GB 0B (0%)
Build Cache 1586 0 363.9GB 363.9GB
イメージの削除
タグが付いていない(dangling)イメージは以下で削除できる。
docker image prune
以下のような警告がでるので、yキーを押すと削除が実行される。
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N]
削減された量が表示される。
Total reclaimed space: xxxB
docker image prune はタグが付いていない (dangling) イメージのみ削除する。使用されていないすべてのイメージを削除したい場合は docker image prune -a を使用する。
ローカルボリュームの削除
どのコンテナからも参照されていないローカルボリュームを以下コマンドで削除できる。
docker volume prune
以下のような警告がでるので、yキーを押すと削除が実行される。
WARNING! This will remove anonymous local volumes not used by at least one container.
Are you sure you want to continue? [y/N]
削減された量が表示される。
Total reclaimed space: xxxB
BuildKitのビルドキャッシュの削除
以下の2つのコマンドでBuildKitビルドキャッシュを削除できる。
docker buildx prunedocker builder prune
通常のDocker DesktopやDocker Engineでは両者は同じBuildKitキャッシュを指すことが多いが、buildxで複数BuilderやリモートBuilderを利用している場合は管理対象が異なる。
docker buildx pruneによるビルドキャッシュ削除
以下のコマンドでBuildKitビルドキャッシュを削除する。
docker buildx prune
以下のような警告がでるので、yキーを押すと削除が実行される。
WARNING! This will remove all dangling build cache. Are you sure you want to continue? [y/N]
削減された量が表示される。
Total: xxxB
docker builder pruneによるビルドキャッシュ削除
以下のコマンドでBuildKitビルドキャッシュを削除する。
docker builder prune
以下のような警告がでるので、yキーを押すと削除が実行される。
WARNING! This will remove all dangling build cache. Are you sure you want to continue? [y/N] y
削減された量が表示される。
Total: xxxB
【参考情報】buildx pruneとbuilder pruneの違い
| 項目 | docker builder prune |
docker buildx prune |
|---|---|---|
| 対象 | BuildKitのビルドキャッシュ | Buildxが管理するBuildKitキャッシュ |
| 登場時期 | Docker Engine標準 | buildxプラグイン |
| マルチプラットフォーム対応 | 限定的 | ○ |
| リモートBuilder対応 | × | ○ |
| builder指定 | × | ○ (--builder) |
| 通常のローカル環境 | ほぼ同じ | ほぼ同じ |
まとめ
DockerのBuild Cacheや不要なイメージ、コンテナ、ボリュームを削除する方法を紹介した。Dockerの利用でディスクを逼迫している場合に有用なので試してみてほしい。
参考