Last Updated: September 30, 2021
·
4.393K
· yitsushi

Get size of running docker containers

Picture

First of all you need to locate your docker's directory. On Linux maybe you can find it in /var/lib/docker.

Now we can discover the content of this magic, but our primary goal is now the aufs directory and exactly the diff subdirectory.

Here we can find diffs so, it's a commit or that you can commit. So if you start a container it has an ID and an initial image (under diff) and an own diff directory.

If you sum of that two directory you get the site of your container (maybe?). Of course if your have commits on it that it will be a little bit complicated but most of the time I run an image and when I don't need I delete it. If I want to modify the image that I make a new initial image.

If your have volumes than you can find them under /var/lib/docker/volumes for instance. So if you run a simple container than all of your files will be stored in their own diff.

Script

DIFFPATH="/var/lib/docker/aufs/diff"; \
(for d in `docker ps -q`; do du -s ${DIFFPATH}/${d}*; done;) | \
sed -e 's/-init//g' | \
awk '{ sum[$2] += $1 }; END { for (path in sum) { print sum[path]/1024"M", path } }'

Output

Picture

121.125M /var/lib/docker/aufs/diff/5dd90664d4021be8949fcf0b0ad7770216cf667a8f80b1336f7ae23a11aaaa2d
658.043M /var/lib/docker/aufs/diff/afc7176ce9aea02839b380823d4c7fec7f74569172f113e5ce43c168b026d7ae