Docker Image cleaning easy automation with cron

Posted on 3 May 2018 by Alberto Roura.
crondevopsdockerLinux

Docker makes it easy to ship your applications and services in containers, so you can run them anywhere. Also true is that the more you work with Docker the easier your VM tends to accumulate a huge number of unused images, containers, and data volumes in your filesystem that clutter the output and consume a lot of precious disk space, eventually leading to crashes.

Docker, in newer versions, gives you all the tools you need to clean up your system from the command line. For this, I created a bash script to initialise a cron-job every day at 8am, so it takes responsibility on your system housekeeping, freeing disk space and keeping your system organized by removing unused Docker images, containers, and volumes.

Docker Image bash script to automate the cleaning

In order to keep my own VMs clean, I use the below script to add the “cleaner” to them:

#!/usr/bin/env bash

# Setup /opt/docker-cleaner.sh
cat <<- 'EOF' > /opt/docker-cleaner.sh
#!/usr/bin/env bash
echo "========== Docker System Sitting =========="
docker images --quiet --filter=dangling=true | xargs --no-run-if-empty docker rmi -f
echo "========== Docker System Cleaned =========="
EOF

# Setup cron job for Docker Cleaner
chmod +x /opt/docker-cleaner.sh
crontab -l > /tmp/newcron
echo "0 8 * * * /opt/docker-cleaner.sh" >> /tmp/newcron
crontab /tmp/newcron
rm /tmp/newcron

Original article: Docker Image cleaning easy automation with cron.

✉️ Contact

Ready to take the next step? Don't wait any longer! If you're interested in learning more about Guztia products and services, or if you have any questions or concerns, book a meeting today.

Book a Meeting

Our team of experts is standing by, ready to assist you with anything you need. Book a Meeting, and Guztia will take care of the rest.