# Docker Desktopのディスクイメージが巨大に：MacでDocker.rawを縮小する方法

> Docker.rawが巨大に見える理由、実際のサイズの測り方、容量を解放しつつボリュームを残すpruneコマンド、上限の設定や移動について解説します。

- URL: https://moreroom.app/ja/learn/docker-desktop-disk-image
- Published: 2026-10-17
- Updated: 2026-10-17
- Publisher: MoreRoom (Yando Pte. Ltd.) — https://moreroom.app

## TL;DR

- Docker Desktopは、すべてのイメージ、コンテナ、ボリューム、ビルドキャッシュを、~/Library/Containers/com.docker.docker内のDocker.rawという1つのディスクイメージに保存しています。
- Docker.rawはスパースファイルです。Finderとls -lは最大サイズを表示し、duは実際に使用している容量を表示します。
- 縮小するには、ファイルを削除するのではなく、Docker内からdocker system pruneを実行します。解放された容量は数分以内にmacOSに戻ります。
- docker system pruneは、--volumesを付けない限りボリュームを残します。付けた場合でも、削除されるのは匿名ボリュームだけです。
- ディスク使用量の上限を下げたり「Clean up data」を使ったりするとディスクイメージが消去されるため、どちらも最終手段と考えてください。

Mac版Docker Desktopは、小さな仮想マシンの中でLinuxコンテナを動かしています。この仮想マシンは、イメージ、コンテナ、ボリューム、ビルドキャッシュの**すべてを`Docker.raw`という1つのディスクイメージファイルに保存**しています。このファイルは数十GBにまで膨らむことがあります。解決策はファイルを削除することではなく、**Docker内からpruneすること**です。そうすれば、Docker Desktopが解放した容量をmacOSに返します。

2026年10月時点で、この内容はmacOS 27 Golden Gate、26 Tahoe、15 Sequoia、14 Sonoma上の現行Docker Desktopに当てはまります。

## Docker.rawの場所と、本当のサイズ

デフォルトでは、[ディスクイメージ](https://moreroom.app/glossary#docker-raw)は次の場所にあります：

```sh
~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw
```

場所を移動した場合は、**Docker Desktop ＞ Settings ＞ Resources ＞ Advanced**で現在の場所を確認できます。

`Docker.raw`は[スパースファイル](https://moreroom.app/glossary#sparse-file)です。論理サイズはディスクイメージが到達しうる最大値ですが、Macの容量を実際に使っているのは、Dockerが書き込んだブロックだけです。Finderと`ls -l`は最大値を表示するので、ファイルが驚くほど大きく見えることがあります。実際の値を確認するには：

```sh
cd ~/Library/Containers/com.docker.docker/Data/vms/0/data
ls -klsh Docker.raw
du -h Docker.raw
```

`ls -s`の出力では、最初の数字が実際に割り当てられている容量で、サイズの列は最大値です。`du`は割り当て済みの容量だけを表示します。Docker自身の[Mac向けFAQ](https://docs.docker.com/desktop/troubleshoot-and-support/faqs/macfaqs/)でも、同じ`ls -klsh`による確認方法が紹介されています。

![スパースファイルのDocker.raw：ディスク使用量の上限で決まる論理サイズと、Mac上で実際に割り当てられたブロックの比較](https://moreroom.app/learn/img/docker-desktop-disk-image-sparse.svg)

## 何が容量を使っているかを確認する

Docker Desktopを起動した状態で、Dockerに内訳を尋ねます：

```sh
docker system df
docker system df -v
```

1つ目のコマンドは、**Images**、**Containers**、**Local Volumes**、**Build Cache**を、合計サイズと、使われていない分を示す**RECLAIMABLE**列付きで表示します。`-v`付きでは、イメージ、コンテナ、ボリュームが1つずつ表示されるので、忘れていた10GBのイメージや、古いプロジェクトの大きなボリュームを見つけやすくなります。

## 穏やかな方法から徹底的な方法まで

ここで紹介するコマンドはすべて、完全に削除します。Dockerのオブジェクトにゴミ箱はありません。イメージは再度pullしたりビルドしたりできますが、ボリュームは取り戻せません。

### ビルドキャッシュ

ローカルでイメージをビルドしている場合、ビルドキャッシュが最大の項目であることがよくあります。

```sh
docker builder prune
```

確認を求められたあと、使われていないビルドキャッシュが削除されます。`--all`を付けると、より徹底的に整理されます。キャッシュがたまるまでのあいだ、次回以降のビルドには時間がかかります。

### 停止中のコンテナ、未使用のネットワークとイメージ

```sh
docker system prune
docker system prune -a
```

オプションなしの`docker system prune`は、停止中のコンテナ、どのコンテナも使っていないネットワーク、dangling（タグなし）イメージ、未使用のビルドキャッシュを削除します。`-a`を付けると、**少なくとも1つのコンテナに使われているもの以外のすべてのイメージ**も削除され、通常はこれが最も多くの容量を解放します。あとで必要になったものは、再度pullまたはビルドされます。詳しくはDockerの[pruneのガイド](https://docs.docker.com/engine/manage-resources/pruning/)と[`docker system prune`のリファレンス](https://docs.docker.com/reference/cli/docker/system/prune/)をご覧ください。

### ボリューム：削除する前に確認

ボリュームには、ローカルのデータベースなど、作り直せないデータが入っています。Dockerがデフォルトでボリュームを削除しないのはそのためです。

```sh
docker volume ls
docker volume rm <name>
```

`docker system prune --volumes`で追加で削除されるのは、どのコンテナも使っていない**匿名**ボリュームだけです。`docker volume prune`も同じ動作で、`docker volume prune --all`を使うと、どのコンテナも使っていない**名前付き**ボリュームも削除されます。大切なものは先にバックアップしてください。

| コマンド | コンテナ | イメージ | ビルドキャッシュ | ボリューム |
|---|---|---|---|---|
| `docker system prune` | 停止中のもの | danglingのみ | 未使用のもの | 残る |
| `docker system prune -a` | 停止中のもの | 未使用のすべて | 未使用のもの | 残る |
| `docker system prune -a --volumes` | 停止中のもの | 未使用のすべて | 未使用のもの | 未使用の匿名ボリューム |
| `docker volume prune --all` | — | — | — | 未使用のすべて |

## 容量が戻らないとき

pruneは仮想マシン内のブロックを解放し、Docker DesktopがそれをバックグラウンドでmacOSに返します。Dockerによれば、これには数分かかることがあります。`du -h Docker.raw`で再確認してください。しばらくしても数値が変わらない場合は、Docker Desktopを終了して開き直します。

Finderは、ファイルの中で何が起きても最大サイズを表示し続けます。進み具合はFinderではなく`du`で判断しましょう。

## ディスクイメージに上限を設ける、または移動する

**Settings ＞ Resources ＞ Advanced**で、最近のバージョンでは**Disk usage limit**（古いバージョンでは**Disk image size**）という設定が使えます。ディスクイメージが拡大できる最大値を決めるものです。DockerのMac向けFAQには、**最大値を小さくすると現在のディスクイメージが削除される**と警告があり、中のイメージ、コンテナ、ボリュームもすべて失われます。先にpruneし、必要なものを書き出してから、上限を下げてください。

同じ画面には**Disk image location**もあります。**Browse**ボタンを使って、`Docker.raw`を容量の大きい内蔵ボリュームや外付けSSDに移動できます。Finderでファイルを移動しないでください。Docker Desktopがファイルの場所を見失うことがあります。

## リセットという選択肢

Docker Desktopの**Troubleshoot**画面（メニューバーのクジラのメニュー、またはDashboard右上付近の疑問符アイコンから開きます）には**Clean up data**があります。古いバージョンでは**Clean / Purge data**という名前です。[Dockerのトラブルシューティングのページ](https://docs.docker.com/desktop/troubleshoot-and-support/troubleshoot/)によれば、設定は残したまま、ローカルのコンテナとイメージをすべて破棄します。ボリュームも同じディスクイメージ内にあるため、一緒に消えると考えてください。一からやり直しても構わない場合にだけ使いましょう。

同じメニューにある**Reset to factory defaults**は、すべての設定もリセットします。

## ディスク容量の管理方法が異なる代替ツール

- **OrbStack**は、コンテナ、イメージ、Linuxマシンを`~/Library/Group Containers/HUAQ24HBR6.dev.orbstack/data`に保存します。[ドキュメント](https://docs.orbstack.dev/)によれば、動的なディスク管理を採用しており、使用量は必要に応じて増減します。整理はOrbStackから、または同じ`docker`コマンドで行います。データファイルを削除すると、中身はすべて失われます。
- **Colima**は無料のコマンドライン型ランタイムで、仮想マシンを`~/.colima`に保存します。`docker`のpruneコマンドは同じように使え、`colima prune`はColimaがキャッシュしたダウンロードを消去し、`colima delete`はプロファイルをすべてのデータごと削除します。

どちらも標準の`docker` CLIを使うため、prune、ボリューム、ビルドキャッシュについての上記の説明はそのまま当てはまります。

## MoreRoomでできること

MoreRoomの無料版は、Docker Desktopのディスクイメージを見つけて「先に確認」のラベルを付け、ファイルを削除するのではなくpruneするよう案内します。整理を選ぶと、MoreRoomはDocker純正の`docker system prune --all --force`を実行します。停止中のコンテナ、未使用のネットワーク、未使用のイメージ、ビルドキャッシュが削除され、**ボリュームは残ります**。このコマンドは元に戻せないため、その旨が表示されます。MoreRoomはOrbStackとColimaのデータも認識し、「先に確認」のラベルを付けます。

MoreRoomが`Docker.raw`を削除したり、ボリュームを削除したり、Dockerのディスク使用量の上限を変更したりすることはありません。Proでは、複数の項目をまとめて整理できるコレクターと、目標モードが使えます。

## FAQ

### Docker.rawを削除してもいいですか？

削除はできますが、中にあるすべてのイメージ、コンテナ、ボリュームが失われ、Docker Desktopは空のファイルを新たに作成します。代わりにDocker内からpruneしてください。本当に一からやり直したい場合は、Docker Desktopの「Troubleshoot」メニューにある「Clean up data」を使えば、設定は残ります。

### FinderでのDocker.rawのサイズが、Dockerの報告よりずっと大きいのはなぜですか？

Docker.rawがスパースファイルだからです。Finderとls -lは、ディスク使用量の上限で決まる最大サイズを表示します。一方、duとls -sは、実際にディスクに書き込まれたブロックを表示します。

### docker system pruneでボリュームは削除されますか？

デフォルトでは削除されません。--volumesを付けると、どのコンテナも使っていない匿名ボリュームも削除されます。自分で作成したデータベース用ボリュームなどの名前付きボリュームは、docker volume prune --allかdocker volume rmでしか削除されません。

### pruneしたのに空き容量が増えないのはなぜですか？

Docker Desktopは解放した容量をバックグラウンドでmacOSに返すため、数分かかることがあります。Docker.rawに対してdu -hを実行して再確認してください。それでも変わらなければ、Docker Desktopを再起動します。また、容量が解放されるのはイメージが実際に削除されたときだけで、タグを外しただけでは解放されません。

### ディスク使用量の上限を下げても安全ですか？

中身を失っても構わない場合に限ります。DockerのMac向けドキュメントには、最大サイズを小さくすると、現在のディスクイメージがその中のイメージ、コンテナ、ボリュームごと削除されると明記されています。
