これで解決!Docker for macのディスク容量を小さくしよう(ベータ)
先日、Docker for macでDocker.qcow2というファイルが肥大化する件というのを書かせていただきましたが、こちらの件、Docker for macの最新版ベータにて、ある程度自動で解消されるような処理がマージされたようです。
New Data Management commands #26108
https://github.com/docker/docker/pull/26108
Docker for mac のベータチャンネルにも降ってきましたので、試してみました。
今回ベータチャンネルで降ってきた内容は多いのですが、その中でReclaim disk size on rebootというのが今回の対応になってそうです。
DataManagement commands周りの主な対応内容としては、VM内のdfを表示するコマンド(docker system df)と、お掃除用のコマンド(docker system prune)が出来たといった感じでしょうか。
docker system df
というコマンドで、今現在のVM内のディスク使用状況が以下のように表示出来ます。
[gen@Gen-no-MacBook ~]$ docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 26 11 14.75 GB 7.695 GB (52%) Containers 19 0 21.61 kB 21.61 kB (100%) Local Volumes 92 16 4.79 GB 3.872 GB (80%)
RECLAIMABLEという列が、再利用可能な容量、といったところでしょうか。
早速、実際にpruneしてみます。
docker system prune
WARNING! This will remove: - all stopped containers - all volumes not used by at least one container - all networks not used by at least one container - all dangling images Are you sure you want to continue? [y/N] y
このような確認事項が表示されて
[y]を選択すると処理が始まります。
Deleted Containers: 〜〜〜〜〜 Deleted Networks: 〜〜〜〜〜 Deleted Images: 〜〜〜〜〜 Total reclaimed space: 4.931 GB
という感じにログが表示され、4.931 GB空いたようです。
prune後にDockerを再起動
メニューからrestartを選択すると再起動します。
起動したら、先ほどのdfを確認してみます。
docker system df
[gen@Gen-no-MacBook ~]$ docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 25 0 14.61 GB 14.61 GB (100%) Containers 0 0 0 B 0 B Local Volumes 0 0 0 B 0 B
再利用化出来たようです。
実際のVMのサイズの変化は
prune実行前は
-rw-r--r-- 1 gen staff 24639504384 1 21 23:37 Docker.qcow2
という巨大なVMになってしまっています。
prune実行後は
-rw-r--r-- 1 gen staff 22750363648 1 21 23:38 Docker.qcow2
約2GBほど縮小されたようです。
これが正式版に入れば、VMのコンソールに入ったり
ディスクの変換をかけたりする必要がなくなり、dockerのコマンドで解消出来るので良さそうです。
追記
後日、何度かDocker for macを再起動してたら、さらにサイズが小さくなってました。
-rw-r--r-- 1 gen staff 17970692096 1 22 11:32 Docker.qcow2
断片的に縮小していく感じなのかもしれません。
Reclaim disk size on rebootという位なので、もしかしたらDocker for macの再起動のたびに不要な領域が解放されていく、という事なのかもしれません。