TL;DR
DockerVM上の/var/lib/docker/tmp/
が6GBも使っていたので削除した。
はじめに
Docker for Mac を使い続けているのですが、大きなイメージをdocker pull
しようとすると no space left on device
と出てしまい、docker pull
に失敗してしまいます。
ディスク容量を調べてみると
$ docker run --rm busybox df -h
Filesystem Size Used Available Use% Mounted on
none 17.9G 14.2G 2.7G 84% /
tmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda1 17.9G 14.2G 2.7G 84% /etc/resolv.conf
/dev/vda1 17.9G 14.2G 2.7G 84% /etc/hostname
/dev/vda1 17.9G 14.2G 2.7G 84% /etc/hosts
shm 64.0M 0 64.0M 0% /dev/shm
tmpfs 1.9G 0 1.9G 0% /proc/kcore
tmpfs 1.9G 0 1.9G 0% /proc/timer_list
tmpfs 1.9G 0 1.9G 0% /proc/sched_debug
/dev/vda1
がDocker for Mac のDockerホストVMに割り当てられているブロックなので、14GB利用して2.7GBしか、残り容量がないことがわかります。
Docker for Mac をインストールしたての状態で試すと
$ docker run --rm -it busybox df -h
Filesystem Size Used Available Use% Mounted on
none 17.9G 46.2M 16.9G 0% /
tmpfs 998.9M 0 998.9M 0% /dev
tmpfs 998.9M 0 998.9M 0% /sys/fs/cgroup
/dev/vda1 17.9G 46.2M 16.9G 0% /etc/resolv.conf
/dev/vda1 17.9G 46.2M 16.9G 0% /etc/hostname
/dev/vda1 17.9G 46.2M 16.9G 0% /etc/hosts
shm 64.0M 0 64.0M 0% /dev/shm
tmpfs 998.9M 0 998.9M 0% /proc/kcore
tmpfs 998.9M 0 998.9M 0% /proc/timer_list
tmpfs 998.9M 0 998.9M 0% /proc/sched_debug
なので、14GBほど容量を使っていることになります。しかし、こまめに不要なコンテナやイメージを削除していたため、14GBも容量を使っていることには納得いきません。そこで調査することにしました。
調査の結果
調査の結果、Docker ホストVMの /var/lib/docker/tmp/
で、6GBほど容量を使っているようでした。
調査の過程は記録を取るのを忘れていましたが、以下のコマンドを利用しています。
# macOS上で。Docker VMに入れる
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
# Ctrl + a, d で抜ける
# Docker VM上で
df -h -s *
# これで、どのディレクトリが容量を使っているのかを地道に調べました。多分もっといい方法はあったはず。
/var/lib/docker/tmp/
の中身ですが、なんとなく昔使ってたコンテナの名残のような気がしたので削除することにしました。(tmpだし削除しても問題ないやろという楽観的な姿勢で挑みました)
一応すべてのコンテナは削除してから、/var/lib/docker/tmp/
の削除を行いました。
rm -rf /var/lib/docker/tmp/
削除した結果
$ docker run --rm busybox df -h
Filesystem Size Used Available Use% Mounted on
none 17.9G 6.2G 10.8G 36% /
tmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda1 17.9G 6.2G 10.8G 36% /etc/resolv.conf
/dev/vda1 17.9G 6.2G 10.8G 36% /etc/hostname
/dev/vda1 17.9G 6.2G 10.8G 36% /etc/hosts
shm 64.0M 0 64.0M 0% /dev/shm
tmpfs 1.9G 0 1.9G 0% /proc/kcore
tmpfs 1.9G 0 1.9G 0% /proc/timer_list
tmpfs 1.9G 0 1.9G 0% /proc/sched_debug
かなり容量が空きました。今の所、使用してみて不具合はありません。
結構楽観的に消しているので、試してみる場合は自己責任でお願いします。