DockerがMacの容量を使っている?小さくする方法

Docker Desktopは、すべてのイメージ、コンテナ、ボリューム、ビルドキャッシュを1つの大きなディスクイメージに保存します。気づかないうちに大きくなります。実際の使用量を調べて容量を取り戻す方法を紹介します。

Dockerの容量の行き先

Macでは、Dockerは軽量な仮想マシンでLinuxを実行します。その中のすべてが、通常は~/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.rawという1つのファイルに保存されます。

これはスパースファイルです。Finderには最大サイズ(たとえば64 GB)が表示されても、実際にはずっと少ない容量しか使っていないことがあります。実際のサイズを調べるには、ターミナルでそのファイルに対してdu -hを実行するか、ファイルが実際にディスク上で占める容量を数えるDiskGardenでスキャンします。

使用状況を確認する

docker system dfを実行すると、イメージ、コンテナ、ローカルボリューム、ビルドキャッシュがどれだけ使っているか、そのうちどれだけ回収できるかがわかります。

容量を取り戻す

  • docker system pruneは、停止中のコンテナ、未使用のネットワーク、タグのないイメージ、未使用のビルドキャッシュを削除します。
  • docker system prune -aは、コンテナが使っていないすべてのイメージも削除します。必要になったら再ダウンロードします。
  • docker builder pruneはビルドキャッシュだけを消去します。イメージを頻繁にビルドする人にとっては、これが最大の部分であることがよくあります。
  • docker volume pruneは未使用のボリュームを削除します。注意:ボリュームにはローカルのデータベースなどのデータが入っています。不要なものであることを確認してください。

Docker Desktopは、空いた容量を自動的にmacOSへ返しますが、ファイルが小さくなるまで少し時間がかかることがあります。

サイズの上限を設定する

Docker DesktopでSettings → Resourcesを開き、仮想ディスクの上限を下げます。Dockerはそれ以上は大きくなりません(下げるにはDockerのデータのリセットが必要になることがあるため、先にpruneしてください)。

最終手段として、Troubleshoot → Clean / Purge dataを使うと、Dockerが保存したすべてを削除して最初からやり直せます。

そのほかの仮想マシン

Parallels、UTM、VMware Fusionなどのアプリも、各仮想マシンを1つの大きなファイルまたはバンドルとして保存します。使わなくなった仮想マシンは、アプリ内から削除してください。これらはすべて、macOSのシステムデータに表示されます。

容量の行き先を見てみましょう

DiskGardenは、すべてのフォルダをサイズ別にマップする、Mac用の無料ディスク容量アナライザです。容量を使っているものが目立ちます。アカウント不要で、ファイルがMacの外に出ることはありません。

DiskGardenを無料でダウンロード