Diagnosing Docker Disk Usage
~1 min#devops #docker
I've been using Docker in Production for over a year in conjunction with Rancher 1.6, the biggest issue so far has been disk usage.
Dangling images is one of the issues so I had to use a docker container that cleans docker images at least once a day, it's called Janitor.
Sometimes Janitor is not enough though, the easiest way to find out where to claim some disk space back is with ncdu, it's like midnight commander for disk usage:
apt get install ncdu
Then you just execute it in terminal or SSH session:
ncdu
You get to browse the entire file system as follows:
5.3 GiB [##########] /tmp
2.4 GiB [#### ] /aufs
71.1 MiB [ ] /volumes
45.5 MiB [ ] /containers
23.0 MiB [ ] /image
144.0 KiB [ ] /network
20.0 KiB [ ] /plugins
e 4.0 KiB [ ] /trust
e 4.0 KiB [ ] /swarm
You also have du:
root@localhost# du /var -ah | sort -rh | head -20
85G /var
84G /var/lib
72G /var/lib/docker/tmp
72G /var/lib/docker
13G /var/lib/mesos/slave
13G /var/lib/mesos
7.9G /var/lib/mesos/slave/slaves/286668e2-1efa-41ba-b25b-6675aeffbde9-S16/frameworks
7.9G /var/lib/mesos/slave/slaves/286668e2-1efa-41ba-b25b-6675aeffbde9-S16
7.9G /var/lib/mesos/slave/slaves
4.4G /var/lib/mesos/slave/store/docker/layers
4.4G /var/lib/mesos/slave/store/docker
4.4G /var/lib/mesos/slave/store
3.3G /var/lib/docker/tmp/GetImageBlob961335265
3.3G /var/lib/docker/tmp/GetImageBlob960365863
3.3G /var/lib/docker/tmp/GetImageBlob940363171
3.3G /var/lib/docker/tmp/GetImageBlob861421802
3.3G /var/lib/docker/tmp/GetImageBlob797050430
3.3G /var/lib/docker/tmp/GetImageBlob779335335
3.3G /var/lib/docker/tmp/GetImageBlob753987945
3.3G /var/lib/docker/tmp/GetImageBlob715284328
As you see, the Docker tmp directory is getting full.
One quick solution is to run docker system prune with the -a:
sudo docker system prune -a
After running I got most of my disk back:
ubuntu:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 2.0G 0 2.0G 0% /dev
tmpfs 396M 5.5M 390M 2% /run
/dev/xvda1 12G 3.0G 8.6G 26% /