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

Docker Desktop では Linux コンテナーやイメージを一つの大きな「ディスクイメージ」として Mac ファイルシステム内に保存します。 これは Linux 上の Docker とは異なっていて、Linux 上ではコンテナーやイメージは通常/var/lib/dockerディレクトリに保存されます。

ディスクイメージファイルはどこにあるか

ディスクイメージファイルの場所を確認するには、Docker アイコンを選択して Preferences > Resources > Advanced を実行します。

Disk preferences

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

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

ディスクイメージが大きくなりすぎた場合は、以下を行います。

  • より容量の大きなドライブに移動させます。
  • 不要なコンテナーあるいはイメージは削除します。
  • ファイルの最大許容サイズを減らします。

より大きなドライブへの移動

ディスクイメージを別の場所に移動するには、以下を行います。

  1. Preferences > Resources > Advanced を実行します。

  2. Disk image location(ディスクイメージの場所)セクションにおいて、Browse をクリックして、ディスクイメージを置く新たな場所を選びます。

  3. Apply & Restart をクリックして、変更内容を適用します。

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

この例において、実際のディスクサイズは2333548KB であり、最大ディスクサイズは64GB です。

ファイルの最大許容サイズの制限

ディスクイメージファイルの最大サイズを減らすには、以下を行います。

  1. Docker アイコンを選択して Preferences > Resources > Advanced を実行します。

  2. Disk image size(ディスクイメージサイズ)セクションにスライダーバーがあり、ディスクイメージの最大サイズを変更できるようになっています。 このスライダーを使って、最小限のサイズを設定します。

  3. Apply & Restart をクリックします。

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

mac, disk