Docker images can quickly pile up during development — especially if you’re testing builds, switching base images, or pulling different versions. Removing unused or outdated images is essential to keep your system clean and free up disk space.
In this guide, we’ll walk through how to remove Docker images safely and effectively.
🐳 What Is a Docker Image?
A Docker image is a read-only template used to create containers. It includes your application code, libraries, environment variables, and dependencies.
Over time, old or unused images may remain on your system, consuming gigabytes of storage.
🧹 1. Remove a Docker Image by Name or ID
To delete a specific image, use:
docker rmi IMAGE_NAME_OR_ID
Example:
docker rmi nginx
Or using the image ID:
docker rmi 45d437916d57
You can find image IDs and names using:
docker images
🔄 2. Remove Multiple Images at Once
You can pass multiple image names or IDs:
docker rmi image1 image2 image3
Or remove all images with a single command (⚠️ use carefully):
docker rmi $(docker images -q)
🔁 3. Remove Dangling Images
Dangling images are layers that are no longer used by any container or tag.
Clean them up with:
docker image prune
Add -f (force) to skip confirmation:
docker image prune -f
💣 4. Remove All Unused Images
This deletes all unused images, not just dangling ones. Useful when cleaning up space:
docker image prune -a
Add -f to confirm:
docker image prune -a -f
Note: This won’t delete images used by existing containers.
🧱 5. What If an Image Can’t Be Removed?
If Docker says:
Error response from daemon: conflict: unable to delete IMAGE... used by running container
It means a container is still using that image.
You’ll need to stop and remove the container first:
docker ps -a # Find container using the image
docker rm CONTAINER # Remove the container
docker rmi IMAGE # Now remove the image
🧠 Summary
| Task | Command |
|---|---|
| List images | docker images |
| Remove specific image | docker rmi IMAGE_NAME_OR_ID |
| Remove all dangling images | docker image prune |
| Remove all unused images | docker image prune -a |
| Force deletion without prompt | Add -f flag |
| Remove image used by a container | Stop & delete the container first |
🧭 Conclusion
Managing Docker images is a key part of maintaining a healthy development or CI/CD environment. Regularly removing unused or dangling images can save you significant disk space and keep your builds clean.
Tip: Automate cleanup in your build scripts or cron jobs using docker image prune to avoid clutter buildup over time.