Mac で Docker が容量を食っているときの削減方法
2026年10月13日更新
Docker Desktop は Linux のイメージ、コンテナ、ボリューム、ビルドキャッシュをすべて1つのディスクイメージファイル Docker.raw に保存するため、pull やビルドを重ねるほど肥大化していきます。まず docker system df で何が容量を使っているかを確認し、下記の prune コマンドで未使用のコンテナ、イメージ、ビルドキャッシュを削除しましょう。ボリュームにはデータが入っているので、手を付けるのは最後にします。
最初にお断りしておくと、このサイトで紹介している Mac アプリ WTMemory は、あえて Docker のデータを削除しません。適切なのは Docker 自身のコマンドで、このガイドではその使い方を説明します。WTMemory ができるのは、Docker のメモリと CPU、そしてディスク上のフォルダサイズを表示することだけです。
Mac で Docker のデータはどこに保存される?
デフォルトでは、ディスクイメージは次の場所にあります。
~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw
場所を移動した場合は、Docker Desktop の Settings > Resources > Advanced > Disk image location に現在の場所が表示されます。イメージ、コンテナ、名前付きボリューム、ビルドキャッシュなど、Linux VM 内のものはすべてこの1ファイルに保存されています。通常のフォルダのように Finder で中身を見ることはできません。
Docker.raw の本当のサイズを確認する
Docker.raw はスパースファイルです。Finder や一部のツールは、実際にディスクを占有している量ではなく最大サイズを表示します。Docker 公式の Mac FAQ では、次の方法で確認することを勧めています。
cd ~/Library/Containers/com.docker.docker/Data/vms/0/data
ls -klsh Docker.raw
先頭の数値が実際のディスク使用量で、行の後ろにあるサイズ列はファイルが拡張できる最大サイズです。Finder では 64 GB と表示されていても ls -klsh で数 GB なら、それほど容量を取られているわけではありません。
Docker が何に容量を使っているか調べる
Docker を起動した状態で、次を実行します。
docker system df
docker system df -v
1つ目は Images、Containers、Local Volumes、Build Cache の合計を RECLAIMABLE(回収可能)列付きで表示します。-v 版はイメージ、コンテナ、ボリュームを1つずつサイズ付きで一覧表示するので、20 GB のデータベースが入ったボリュームや、一度 pull したきり忘れていたイメージを見つけられます。
prune コマンドごとの削除対象
以下の説明は、2026年10月13日に確認した Docker のprune に関するドキュメントに基づいています。どのコマンドも -f を付けない限り確認を求めてきます。
| コマンド | 削除されるもの | リスク |
|---|---|---|
docker container prune | 停止中のコンテナすべて。 | 低。停止中のコンテナのファイルシステム内(ボリューム外)に書き込んだものは失われます。 |
docker image prune | dangling イメージ(タグなしで未使用)のみ。 | 低。 |
docker image prune -a | 既存のコンテナで使われていないすべてのイメージ。 | 中。次回はダウンロードかビルドし直しになります。 |
docker buildx prune または docker builder prune | dangling なビルドキャッシュ。--all を付けるとビルドキャッシュすべて。 | 低。次回以降のビルドが遅くなります。 |
docker system prune | 停止中のコンテナ、未使用のネットワーク、dangling イメージ、未使用のビルドキャッシュ。ボリュームには触れません。 | 低〜中。 |
docker system prune -a | 上記に加え、dangling だけでなく未使用のイメージすべて。 | 中。 |
docker system prune --volumes | 未使用の匿名ボリュームも対象に追加。 | 匿名ボリュームに必要なデータがあれば高。 |
docker volume prune | 未使用の匿名ボリューム。名前付きボリュームは残ります。 | データ入りの匿名ボリュームがあれば高。 |
docker volume prune -a | 名前付きを含む、未使用のボリュームすべて。 | 最高。ローカルのデータベースはこうして消えます。 |
ボリュームの注意点:「未使用」のボリュームとは、今どのコンテナにもアタッチされていないという意味にすぎません。Postgres、MySQL、MongoDB のサービスを含むプロジェクトで docker compose down を実行した場合、そのボリュームは未使用扱いになりますが、データベースはまだ中に残っています。ボリュームを prune する前に docker volume ls を実行し、大事なものはバックアップしてください。
Docker のディスク容量を安全に空ける手順
docker system df -vを実行し、大きな項目をメモします。docker container pruneを実行し、停止中のコンテナを削除します。docker buildx pruneを実行し、dangling なビルドキャッシュを削除します。ビルドを多用するマシンでは、これが一番手軽に効くことがよくあります。- イメージを pull し直してもかまわなければ、
docker image prune -aを実行します。 - ボリュームはやみくもに prune せず、1つずつ確認して
docker volume rm <name>で個別に削除します。 ls -klshで Docker.raw の実際のサイズをもう一度確認します。
Docker の Mac FAQ によると、実行中のコンテナ内でファイルを削除しても領域が自動的に解放されるとは限らないため、ファイルがすぐには小さくならないことがあります。
Docker.raw の最大サイズを制限する
Docker Desktop を開き、Settings > Resources > Advanced で Disk usage limit を調整して Apply を選びます。Docker の FAQ によると、最大サイズを小さくすると現在のディスクイメージが削除され、コンテナとイメージはすべて失われます。先にボリュームをバックアップしてください。同じセクションにある Docker Desktop の Browse オプションから、ディスクイメージを容量の大きいドライブに移動することもできます。Finder で移動してはいけません。
同じ Resources セクションでは VM のメモリ上限も設定できます。Docker がディスクではなくメモリを大量に使っている場合は、この上限を下げてください。詳しくはMac のメモリ使用量を確認する方法をご覧ください。
OrbStack や Colima の場合は?
OrbStack と Colima は、Mac で Docker コンテナを動かすための別の選択肢です。データは Docker Desktop の Docker.raw ではなくそれぞれ独自の場所に保存されますが、docker system df や prune コマンドは、docker CLI が向いているエンジンに対して同じように使えます。どのエンジンかは docker context ls で確認し、ディスク設定については各ツールのドキュメントを参照してください。
WTMemory で Docker のデータを削除できる?
できません。これは設計上の判断です。WTMemory のクリーンアップ対象は、対応している AI モデルのフォルダと、Xcode の DerivedData や npm、pnpm、Yarn、Bun、Cargo、Gradle のキャッシュなどの開発者向けキャッシュです。Docker の VM データにはデータベースや再作成できない作業内容が含まれることがあり、どこを消して安全かを知っているのは Docker だけなので、対象から除外しています。
無料でできることは次のとおりです。
- Running Apps(実行中のアプリ)は、Docker Desktop をほかのアプリと並べてメモリ、CPU、PID、ポートとともに表示します。1行が1プロセスなので、Docker の VM やヘルパープロセスは行に表示される以上に使っていることがあります。全体像はアクティビティモニタで確認してください。
- Disk Explorer(ディスク分析)は読み取り専用です。
~/Library/Containersなどのフォルダを指定してフォルダサイズを比較し、最大のファイルを見つけて Finder で表示できます。何かを削除することは一切ありません。
WTMemory は macOS 12 以降、Apple シリコンと Intel に対応したネイティブのメニューバーアプリです。調査機能は無料。Pro は買い切り $9 USD(最大3台の Mac)、7日間の試用付きです。
よくある質問
Mac で Docker のデータはどこに保存されますか?
Docker Desktop は Linux のイメージ、コンテナ、ボリューム、ビルドキャッシュを1つのディスクイメージファイルに保存します。デフォルトの場所は ~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw です。正確な場所は Settings > Resources > Advanced で確認できます。
Docker.raw を削除しても大丈夫ですか?
Docker の実行中に Finder で削除してはいけません。削除やリセットをすると、ボリューム内のデータベースのデータも含め、すべてのイメージ、コンテナ、ボリュームが消えます。代わりに prune コマンドか、Docker Desktop 自体のトラブルシューティングとリセット機能を使ってください。
docker system prune でボリュームも削除されますか?
デフォルトでは削除されません。docker system prune が削除するのは、停止中のコンテナ、未使用のネットワーク、dangling イメージ、未使用のビルドキャッシュです。--volumes を付けると未使用の匿名ボリュームも削除されます。名前付きボリュームは docker volume prune -a を実行するか、docker volume rm で個別に削除した場合にのみ削除されます。
prune しても Docker.raw が大きいままなのはなぜですか?
Docker.raw はスパースファイルなので、Finder や一部のツールは実際の使用量ではなく最大サイズを表示することがあります。実際の使用量は ls -klsh で確認してください。また Docker によると、実行中のコンテナ内でファイルを削除しても、その領域が自動的に解放されるとは限りません。
WTMemory で Docker のデータを削除できますか?
できません。Docker の VM データにはデータベースなど再作成できないデータが含まれることがあるため、WTMemory は設計上これを削除対象から除外しています。Running Apps で Docker のメモリと CPU を表示でき、読み取り専用の Disk Explorer でフォルダのサイズを確認できます。
出典(2026年10月13日確認):Docker Desktop for Mac FAQ、Prune unused Docker objects、Docker Desktop settings