Manage Docker images on local disk
Docker is very powerful containerization technique, and it is becoming famous in short time.
People are adapting and containerizing their applications for deployment.
Soon container become very heavy and consume too much of disk space, If you do not delete old images and layers you may soon run out of disk space.
Here i am trying to cover the ways to regain the disk space consumed by docker images.
- Moving docker filesystem to bigger mount point.
Usually docker keeps all temporary files related to image building and layers at /var/lib/docker
This path is local to the system usually at root partition "/".
You can mount a bigger disk space and move the content of /var/lib/docker to the new mount location and make sym link.
This way even docker images occupy space, will not affect your system as it will be using some other mount location.
- Remove Old docker images
Here are few ways to remove old and unused docker images
- Removing stopped container
docker ps -a | grep Exited | awk '{print $1}' | xargs docker rm
- If you do not want to remove all container you can have filter for days and weeks old like below
docker ps -a | grep Exited | grep "days ago" | awk '{print $1}' | xargs docker rm
docker ps -a | grep Exited | grep "weeks ago" | awk '{print $1}' | xargs docker rm
- There are lot of dangling/intermediate layers which are created as part of docker image creation.
This is a great way to recover the spaces used by old and unused layers.
docker rmi $(docker images -f "dangling=true" -q)
- Removing images of particular pattern For example
Here i am removing images which has SNAPSHOT with it.
docker rmi $(docker images | grep SNAPSHOT | awk '{print $3}')
- Removing Weeks old images
docker images | grep "weeks ago" | awk '{print $3}' | xargs docker rmi
##Similarly You can remove days, months old images too.
Script can be found in following git repo.
Comments
Post a Comment