Docker for Mac におけるディスク使用量

Docker Desktop で Linux コンテナとイメージを保管するのは、Mac ファイルシステム内の単一の大きな「 ディスク イメージ(disk image) 」ファイルです。これは Linux 上の Docker が /var/lib/docker ディレクトリにコンテナとイメージを保管するのとは異なります。

ディスクイメージファイルはどこに?

ディスクイメージファイルの場所を探すには、 Docker アイコンから Preferences > Resources > Advanced を選択します。

ディスク設定

Advanced タブに、ディスクイメージの場所が表示されています。またディスクイメージの最大容量や、現在消費しているディスクイメージ容量も表示されています。他のツールでは、実際のファイルサイズではなく、最大のファイルサイズでの使用量を表示している場合があります。

ファイルが大きすぎる場合

ディスクイメージファイルが大きすぎる場合、次の対処ができます:

  • より大きなドライブに移動
  • 不要なコンテナやイメージを削除、あるいは
  • ファイルに割り当て可能な最大サイズを減らす

大きなドライブにファイルを移動

ディスクイメージファイルを別の場所に移動するには:

  1. Preferences > Resources > Advanced を選択
  1. Disk image locaition セクション内で、 Browse をクリックし、ディスクイメージの新しい場所を選択
  1. 設定を反映するには Apply & Restart をクリック

(macOS の)Finder でファイルディレクトリを移動しないでください。移動しても、 Docker Desktop はファイルを追跡できません。

不要なコンテナやイメージを削除

不要なコンテナやイメージがないかどうか確認します。クライアントとデーモン API がバージョン 1.25 以降で動いていれば(クライアントで docker version コマンドを実行し、クライアントとデーモンの API バージョンを確認できます )、次のコマンド実行によって詳細な容量の利用状況が分かります。

$ docker system df -v

あるいは、イメージ一覧を表示します。

$ docker image ls

そして、次にコンテナ一覧を表示します。

$ docker container ls -a

もしも不要なものが大量にあれば、次のコマンドを実行します。

$ docker system prune

このコマンドを実行すると、停止中のコンテナ、未使用のネットワーク、参照されていないイメージ、ビルド・キャッシュをすべて削除します。

ホストに依存するディスクイメージファイル形式によっては、容量改善のために数分の時間がかかることもあります。

  • ファイル名が Docker.raw :ホスト上のスペース改善は数秒以内に終わります。
  • ファイル名が Docker.qcow2 :バックグラウンド処理が進行し、数分後に空き容量が増えます。

容量の解放は、イメージを削除した時のみです。実行中のコンテナ内でファイルを削除しても、自動的に空き容量は解放されません。任意のタイミングで容量を確保をしたければ、次のコマンドを実行します。

$ docker run --privileged --pid=host docker/desktop-reclaim-space

多くのツールでは、実際に使用しているファイルサイズではなく、ファイルが確保するサイズを表示する場合があるため、注意してください。ホスト上のファイルが実際に使用している容量を確認するには、ターミナル上で次のコマンドを実行します:

$ cd ~/Library/Containers/com.docker.docker/Data/vms/0/data
$ ls -klsh Docker.raw
2333548 -rw-r--r--@ 1 username  staff    64G Dec 13 17:42 Docker.raw

この例では、ディスクの実際のサイズは 2333548 KB ですが、最大のディスクサイズは 64 GB です。

ファイルに割り当て可能な最大サイズを減らす

ディスクイメージファイルの最大サイズを減らすには:

  1. Docker アイコンから Preferences > Resoruces > Advanced を選択
  1. Disk image size セクションで、スライダーを調整。この変更によって、ディスクイメージに割り当てる最大容量を変更できる。スライダーを下限にセット
  1. Apply & Restart をクリック

最大サイズを減らした場合、現在のディスクイメージファイルは削除されます。つまり、すべてのコンテナとイメージは消滅します。

参考

Disk utilization in Docker for Mac
https://docs.docker.com/docker-for-mac/space/