A Docker image can only be deleted if it is not being used by any Docker containers. Therefore, in order to delete a Docker image, all of the Docker containers using that image must also be deleted.

In this lesson, we’ll explore several methods for removing Docker containers.

The Purpose of Docker Container Removal

A Docker container reaches the exited state once its execution is finished. These containers occupy the machine’s disk space even though they don’t use any CPU or memory. Additionally, halted containers are not immediately deleted until we run the Docker container with the --rm parameter.

As a result, as more containers are put into the exited state, the total amount of disk space they use grows. This could prevent us from starting new containers or cause the Docker daemon to become unresponsive.

It is advised to either run the Docker containers with the --rm flag or manually remove the Docker containers regularly to prevent such situations.

Now let’s look at removing Docker containers.

We’ll start a non-interactive Almalinux Docker container first. When we run the container this way, it will immediately cease.

docker run -d --name mycontainer almalinux

For Ubuntu, you can use:

docker run -d --name mycontainer ubuntu

Let’s now use the docker rm command to delete the Docker container, mycontainer:

docker rm mycontainer

When using the docker rm command to delete a Docker container, you can also use the Docker container ID for the Docker container name:

docker rm <container_id>

Eliminate Several Docker Containers

Using the docker rm command, we can also get rid of numerous Docker containers. The docker rm command eliminates every container listed in a space-separated list of its name or ID:

docker rm <container_id1> <container_id2> <container_id3>

Three Docker containers were present in the previous example but were eliminated with the docker rm command.

Any Docker command can be used in conjunction with the Docker container name and ID. You’ll see that for mycontainer1 and mycontainer3, we used the Docker container ID, while for mycontainer2, we used the container name.

Delete Each and Every Docker Container

Imagine a situation where there are too many halted Docker containers on the machine and we want to get rid of them all. Of course, we can employ the aforementioned strategy and supply the docker rm command with the IDs of all the containers. The following command, however, is simpler and more optimized for removing all Docker containers:

docker rm $(docker ps -a -q)

Remove a Running Docker Container Forcibly

All of the commands we covered in the aforementioned examples only function when the Docker container is halted. Without first halting it, we can attempt to delete a running container and receive the following error message:

Error response from daemon: You cannot remove a running container

Using the docker stop command to stop a running Docker container and the docker rm command to delete it are two methods for doing so.

Another approach is to use the -f option to remove such containers forcibly:

docker rm -f <container_id>

A single Docker container, a group of Docker containers, or all of the Docker containers can be deleted with the -f option.


In this tutorial, we learned why it’s important to get rid of Docker containers. First, we discovered how to take a container off of a Linux computer. Additionally, we used the docker rm and docker prune commands to bulk remove the Docker containers.

Last but not least, we considered how to eject forcibly running Docker containers. Regularly removing unused containers is a good practice to optimize disk space and ensure the smooth operation of your Docker environment, regardless of whether you’re using Almalinux or Ubuntu.

Server Hosting Solutions by RackNerd:

Shared Hosting
cPanel Web Hosting in US, Europe, and Asia datacenters
Reseller Hosting
Create your new income stream today with a reseller account
VPS (Virtual Private Server)
Fast and Affordable VPS services - Instantly Deployed
Dedicated Servers
Bare-metal servers, ideal for the performance-demanding use case.

Leave a comment

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