DockerがMacの容量を使っている?小さくする方法
Docker Desktopは、すべてのイメージ、コンテナ、ボリューム、ビルドキャッシュを1つの大きなディスクイメージに保存します。気づかないうちに大きくなります。実際の使用量を調べて容量を取り戻す方法を紹介します。
Docker Desktopは、すべてのイメージ、コンテナ、ボリューム、ビルドキャッシュを1つの大きなディスクイメージに保存します。気づかないうちに大きくなります。実際の使用量を調べて容量を取り戻す方法を紹介します。
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の外に出ることはありません。