何が起きたか
今日も元気にdevcontainer
(vscodeのRemote-Container
)で気軽に環境を破壊しちゃおうかな、って新しく作成したら、
mkdir: cannot create directory '/home/node/.vscode-server': No space left on device
とか、既存のプロジェクトをdevcontainerで開いても
failed to solve: failed to register layer: Error processing tar file(exit status 1): write /home/vscode/.oh-my-zsh/themes/kphoen.zsh-theme: no space left on device
とか言われる。新しいファイルを作成する容量がない、だと?コンテナの分際でたわけたことをぬかしおる
「あれ〜?まあ2ヶ月くらい色んな捨てimage作っては放置してるしなんならmac自体ずっと再起動してないしな」みたいに思って、とりあえずDockerをアプデしたりmacを再起動したりしたが改善せず。
結論
Devcontainer
ではなくDocker
側の挙動だったのでタイトルはもうミスリードです。
docker builder prune
で治った。
何
わからんし知らん、とりあえず調べてみたのじゃ
% docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 35 22 23.74GB 12.36GB (52%) Containers 27 0 8.673GB 8.673GB (100%) Local Volumes 5 2 3.123GB 262.9MB (8%) Build Cache 435 0 14.74GB 14.74GB
なるほどね〜(何かがわかったとかではない。Dockerもdevcontainerも雰囲気でやっている)。とりあえず何のキャッシュかは知らんけどキャッシュと名のつくもんは一旦消してみるに限る。諸説ある。ということで、前述のコマンドでBuild Cache
を削除した。
(ちなみに-v
オプションつけたところで膨大な出力を得られただけでよくわからんかった)
やったあとはこうなった
% docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 36 23 24.41GB 12.36GB (50%) Containers 28 1 8.674GB 8.673GB (99%) Local Volumes 5 2 3.123GB 262.9MB (8%) Build Cache 244 0 292.5kB 292.5kB
ImageとContainerがひとつ増えてるのはテストで適当な環境をRebuild Container
を試したからですね。