Docker is great for containerizing your applications, but over time, it can clutter your system with unused images, dangling layers, and outdated builds. If your system is running low on disk space, it’s time for a Docker cleanup!
In this guide, you’ll learn how to identify and safely remove old and unused Docker images to free up system resources and keep your environment tidy.
🧠 What Are Unused or Dangling Docker Images?
Before we dive in, let’s clarify the terms:
- Dangling Images: These are layers not associated with any tagged image. They often result from incomplete or repeated builds.
- Unused Images: These are images that exist on your system but aren’t used by any container (running or stopped).
🔍 Check Your Docker Disk Usage
Before removing anything, it’s good to understand what’s taking up space.
docker system df
This command shows how much space is used by images, containers, volumes, and caches.
🧼 How to Remove Unused Docker Images
1. Remove All Unused Images
You can remove images not used by any container using:
docker image prune
This will prompt you for confirmation and only delete dangling images by default.
2. Remove All Unused Images (Including Tagged)
To clean all unused images, even those with tags:
docker image prune -a
Add -f to skip the confirmation prompt:
docker image prune -a -f
⚠️ Warning: This will delete all images not referenced by a container — even if you intend to use them later.
🧹 Clean Everything: Images, Containers, Volumes, Networks
If you want a deep clean of your Docker environment:
docker system prune -a
This will:
- Remove unused images
- Remove stopped containers
- Remove unused networks
- Remove build cache
Add -f for force and --volumes to include volumes:
docker system prune -a --volumes -f
🔎 Find and Remove Specific Old Images
You can manually list images and delete by ID or name.
List All Docker Images
docker images
Remove Specific Image
docker rmi <image_id_or_name>
🛑 Remove Only Dangling Images
docker images -f "dangling=true"
docker rmi $(docker images -f "dangling=true" -q)
Note: Always double-check what you’re deleting!
✅ Best Practices to Avoid Image Clutter
- Use multi-stage builds in Dockerfiles to reduce image size.
- Regularly prune your Docker environment during development.
- Avoid building without tags (
docker build .) — always use-t. - Use CI/CD pipelines that clean up after builds.
📦 Final Thoughts
Unused Docker images can waste gigabytes of space. By regularly cleaning up, you:
- Keep your system fast and efficient
- Avoid confusion with stale images
- Maintain a clean development or production environment
Now you know exactly how to remove old and unused Docker images—responsibly.
Need a fresh start?
Run docker system prune -a and reclaim your storage in seconds.