How to Remove Docker Images, Containers and Volumes

Docker is an open-source, powerful, secure, reliable and efficient container platform that enables realistic independence between applications and infrastructure. It is being widely adopted by IT and cloud companies out there, to easily to create, deploy, and run applications.

A container is a technology for visualizing operating systems, that enables an application to be packaged with everything needed to run it, allowing it to run independently from the operating system. A container image is a self-contained, executable package of an application that includes everything needed to run it: code, runtime, system tools and libraries, as well as configurations.

We have already covered a series on Docker, that explains how to install Docker, run applications into containers and automatically build docker images with dockerfile.

  1. Install Docker and Learn Basic Container Manipulation in CentOS and RHEL 7/6
  2. How to Deploy and Run Applications into Docker Containers on CentOS/RHEL 7/6
  3. Automatically Build and Configure Docker Images with Dockerfile on CentOS/RHEL 7/6
  4. How to Setup a Simple Apache Web Server in a Docker Container

In this article, we will explain how to remove docker images, containers and volumes via the docker command line tool in Linux systems.

How to Remove Docker Images

Before you remove any docker images, you can list all existing images on your system with the image management command.

$ docker image	        #list the most recently created images
$ docker image -a 	#list all images

Looking at the output in the screenshot that follows, we have some images without a tag (showing instead), these are referred to as “dangling images”. They no longer have any relationship to any tagged images; they are not useful anymore and only consume disk space.

List Docker Images

List Docker Images

You can remove one or more old or unused Docker images using the image ID, for example (where d65c4d6a3580 is the image ID).

$ docker rmi d65c4d6a3580 				#remove a single image
$ docker rmi 612866ff4869 e19e33310e49 abe0cd4b2ebc	#remove multiple images

You can list dangling images (untagged images) using the -f filter flag as shown.

$ docker images -f dangling=true	
List Dangling Docker Images

List Dangling Docker Images

To remove all dangling images, allowing you to reclaim wasted disk space, use any of these commands.

$ docker image prune		#interactively remove dangling images
$ docker rmi $(docker images -q -f dangling=true)
Remove All Dangling Images

Remove All Dangling Images

To remove all not associated with any container, use the following command.

$ docker image prune -a 	

How to Remove Docker Containers

You can start by listing all docker containers on your system using following command.

$ docker ps
$ docker ps -a  
List Docker Containers

List Docker Containers

Once you have identified the container (s) you want to delete, you can remove them using their ID, for example.

$ docker rm 0fd99ee0cb61		#remove a single container
$ docker rm 0fd99ee0cb61 0fd99ee0cb61   #remove multiple containers

If a container is running, you can first stop it and remove it as shown.

$ docker stop 0fd99ee0cb61
$ docker rm -f 0fd99ee0cb61

You can also force-remove a container while it is running by adding the --force or -f flag, this will send it a SIGKILL signal as shown.

$ docker rm -f 0fd99ee0cb61

You can remove containers using filters as well. For example to remove all exited containers, use this command.

$ docker rm $(docker ps -qa --filter "status=exited")

To stop and remove all containers, use the following commands.

$ docker stop $(docker ps -a -q)	#stop all containers
$ docker container prune		#interactively remove all stopped containers
$ docker rm $(docker ps -qa)

How To Remove Docker Volumes

As before, begin by listing all docker volumes on your system with the volume management command as shown.

$ docker volume ls

To remove one or more volumes, use the following command (note that you can’t remove a volume that is in use by a container).

$ docker volume rm volume_ID 	           #remove a single volume 
$ docker volume rm volume_ID1 volume_ID2   #remove multiple volumes

Use the -f flag to force the removal of one or more volumes.

$ docker volume rm -f volume_ID

To remove dangling volumes, use the following command.

$ docker volume rm $(docker volume ls  -q --filter dangling=true)

To remove all unused local volumes, run the following command. This will remove volumes interactively.

$ docker volume prune	

How to Remove Unused or Dangling Images, Containers, Volumes, and Networks

You can delete all dangling and unreferenced data such as containers stopped, images without containers, with this single command. By default, volumes are not removed, to prevent vital data from being deleted if there is currently no container using the volume.

$ docker system prune

To prune volumes, simply add the --volumes flag to the below command as shown.

$ docker system prune --volumes

Note: In order to run the docker command line tool without the sudo command, you need to add a user to docker group, for instance.

$ sudo usermod -a -G docker aaronkilik

For more information, see the help page for the above docker object management commands.

$ docker help
$ docker image help   
$ docker container help   
$ docker volume help   

That’s all for now! In this article, we have explained how to remove docker images, containers and volumes via the docker command line tool. If you have any questions or thoughts to share, use the feedback form below to reach us.

Best Affordable Linux and WordPress Services For Your Business
Outsource Your Linux and WordPress Project and Get it Promptly Completed Remotely and Delivered Online.

If You Appreciate What We Do Here On TecMint, You Should Consider:

  1. Stay Connected to: Twitter | Facebook | Google Plus
  2. Subscribe to our email updates: Sign Up Now
  3. Get your own self-hosted blog with a Free Domain at ($3.45/month).
  4. Become a Supporter - Make a contribution via PayPal
  5. Support us by purchasing our premium books in PDF format.
  6. Support us by taking our online Linux courses

We are thankful for your never ending support.

Aaron Kili

Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Your name can also be listed here. Got a tip? Submit it here to become an TecMint author.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide

You may also like...

2 Responses

  1. Carl says:

    Great info! You might want to mention a docker image called Watchtower for updating docker images/containers. Probably one best images I’ve ever implemented in my Docker environment

Got something to say? Join the discussion.

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.