Docker肥大化対応
Docker for macは気がつくとディスク容量がすごく消費されているという状況になってしまいますが、つい先日Docker for macのベータに降ってきた内容が正式版に入ったら、この問題も解決しそう。
ベータに降ってきた内容としては
"Reclaim disk size on reboot"
という事で、再起動でディスクの再利用出来る所を使えるようにする、という感じですかね。
という事で、試してみました。
この"Reclaim disk size on reboot"周りの主な対応内容としては、VM内のdfを表示するコマンド(docker system df)と、お掃除用のコマンド(docker system prune)が追加になったといった感じでしょうか。
新たに追加になるコマンド(一部抜粋)
- df
Show docker disk usage - events
Get real time events from the server - info
Display system-wide information - prune
Remove unused data
試してみる
df
$> docker system df
というコマンドで、今現在のVM内のディスク使用状況が以下のように表示出来ます。
$> docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 25 10 8.896 GB -1.309e+08 B (-1%)
Containers 26 2 1.844 GB 1.844 GB (99%)
Local Volumes 49 10 3.2 GB 2.761 GB (86%)
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: 5.743 GB
という感じにログが表示され、5.743 GB空いたようです。
prune後にDockerを再起動します。
※メニューからrestartを選択すると再起動します。
起動したら、先ほどのdfで確認してみます。
$> docker system df
$> docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 20 1 8.138 GB 7.876 GB (96%)
Containers 2 2 125 B 0 B (0%)
Local Volumes 2 2 59.5 MB 0 B (0%)
再利用化出来たようです。
実際のVMのサイズの変化は
prune実行前は
-rw-r--r-- 1 hoge staff 26539524096 1 23 09:54 Docker.qcow2
という巨大なVMになってしまっています。
prune実行後は
-rw-r--r-- 1 hoge staff 18188664832 1 23 09:55 Docker.qcow2
約8GBほど縮小されたようです。
感想
これが正式版に入れば、VMのコンソールに入ったり
ディスクの変換をかけたりする必要がなくなり、dockerのコマンドで解消出来るので良さそうです。