Docker for Mac におけるディスク使用量¶
Docker Desktop で Linux コンテナとイメージを保管するのは、Mac ファイルシステム内の単一の大きな「 /var/lib/docker
ディレクトリにコンテナとイメージを保管するのとは異なります。
ディスクイメージファイルはどこに?¶
ディスクイメージファイルの場所を探すには、 Docker アイコンから Preferences > Resources > Advanced を選択します。
Advanced タブに、ディスクイメージの場所が表示されています。またディスクイメージの最大容量や、現在消費しているディスクイメージ容量も表示されています。他のツールでは、実際のファイルサイズではなく、最大のファイルサイズでの使用量を表示している場合があります。
ファイルが大きすぎる場合¶
ディスクイメージファイルが大きすぎる場合、次の対処ができます:
より大きなドライブに移動
不要なコンテナやイメージを削除、あるいは
ファイルに割り当て可能な最大サイズを減らす
大きなドライブにファイルを移動¶
ディスクイメージファイルを別の場所に移動するには:
Preferences > Resources > Advanced を選択
Disk image locaition セクション内で、 Browse をクリックし、ディスクイメージの新しい場所を選択
設定を反映するには 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 です。
ファイルに割り当て可能な最大サイズを減らす¶
ディスクイメージファイルの最大サイズを減らすには:
Docker アイコンから Preferences > Resoruces > Advanced を選択
Disk image size セクションで、スライダーを調整。この変更によって、ディスクイメージに割り当てる最大容量を変更できる。スライダーを下限にセット
Apply & Restart をクリック
最大サイズを減らした場合、現在のディスクイメージファイルは削除されます。つまり、すべてのコンテナとイメージは消滅します。
参考
- Disk utilization in Docker for Mac