docker.raw について
docker.rawの64GBってなに🐳
🐳←かわいい
外付けで起動していたMac用のSSDを別の用途で使いたくなり、システム領域の状況をDisk Drillで確認してみました。
すると /Users/<ユーザー名>/Library/Containers/com.docker.docker/Data/vms/0/docker.raw という、見慣れないファイルが 64GB も占有していました。
よくわからなかったので、調べてみました。
docker.raw とは
調べたところ、これは Docker Desktop for Mac が内部で使用している仮想ディスクファイルのようです。
macOS上ではLinuxカーネルを直接動かすことができないため、Dockerは仮想マシン(HyperKit や Apple Virtualization Framework など)を利用して、その中でコンテナを動かしています。
この docker.raw は、その仮想マシンの「ディスクイメージ」にあたるものです。
簡単に言えば、
Docker の Linux 仮想マシン用のハードディスクのようなもの
です。
このファイルの中には、Dockerイメージ、コンテナ、ボリューム、キャッシュなどがまとめて保存されています。
なぜこんなサイズ
Docker Desktopでは、デフォルトで 最大64GBまで自動的に拡張される 仮想ディスクが使われており、docker.raw も実際の使用量だけでなく「確保されている最大サイズ」も含まれているようです。
また、以下のようなファイルやデータが内部に蓄積されていくことも、サイズが大きくなる要因のようです:
- 一度pullしたものの使われていないDockerイメージ
- 一時的に生成されたボリューム
- キャッシュされたイメージレイヤー
- ビルド時の一時ファイル
基本的には削除しない方が良さそうです
削除するとDockerで利用していたイメージやボリューム、永続化していなかったDBのデータなどが、すべて失われてしまいます。
以下のような場合には削除を検討するくらいでしょうか。
- Docker Desktopを初期化(リセット)したいとき
- ストレージ整理のため、まっさらな状態にしたいとき(データを失っても問題ない場合)
- バグなどによりディスクイメージが異常に大きくなってしまったとき
クリーンアップの方法
結局のところ、prune が一番効果的なようです。
1
2
docker system df # 確認
docker system prune -a # 未使用のイメージ・ボリューム・キャッシュをすべて削除