Post

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   # 未使用のイメージ・ボリューム・キャッシュをすべて削除
This post is licensed under CC BY 4.0 by the author.

© taroru. Some rights reserved.

Using the Chirpy theme for Jekyll.