Docker containers consume space and resources on your host system. By removing unnecessary containers, you can free up valuable storage space and improve your system performance.
When should you delete a Docker container?
Docker containers are isolated executable units which contain applications and their dependencies. Removing Docker containers can be done in a variety of scenarios to keep your Docker environment efficient, secure, and clear.
Generally speaking, you should remove containers after their use. When a container has successfully completed its specific task or process, it is advisable not to keep it in your environment any longer. This prevents inactive containers from continuing to tie up resources and take up space unnecessarily.
It's also a good idea to delete containers that are no longer in use or haven't received updates in a while. This is particularly important for reduce security risksbecause older containers may have outdated software versions or security vulnerabilities.
If you have any doubts about the security of a container or think it might be compromised, delete it immediately to minimize risk. The same goes for containers that cannot be started due to conflicts or other issues.
IONOS Cloud Compute Engine
Medium and large companies choose Cloud Made in Germany. IaaS and PaaS from hidden champion to hidden champions.
Deleting one or more specific Docker containers is a common procedure to remove unnecessary or inactive containers from Docker host.
Step 1: Determine the Container ID or Name
You must first find the Container IDs or names that you want to delete. You can use the following command to display a list of all running or stopped containers:
Step 2: Remove Containers
You can simply provide space-separated container ids or names after the command docker rm :
docker rm container_id_or_name1 container_id_or_name2
bash
Delete a container on close
To automatically delete a Docker container when it closes, place the option (flag) --rm
when you start the container with the command docker run
. This option allows the container to be automatically deleted as soon as it is stopped.
docker run --rm nom_image
bash
It is also possible to delete all completed containers at once, by filtering the containers according to their status and deleting them with rm
.
Step 1: List Completed Containers
The option -f status=exited
allows you to filter the list of containers to display only those that are completed.
docker ps -a -f status=exited
bash
Step 2: Delete Completed Containers
The previous step allows you to obtain the identifiers of the completed containers in order to transmit them directly to the command docker rm
.
docker rm $(docker ps -a -f status=exited -q)
bash
Delete containers with more than one filter
You can delete Docker containers with more than one filter by applying the command docker ps
in combination with filter optionsthen passing the output to the command docker rm
.
Step 1: List Containers with Filters
The command docker ps
with filter options allows you to list containers based on the desired criteria. “created” is, along with “exited”, another selectable state. Containers as is created are those that have been created but not yet executed.
docker ps -a -f status=exited -f status=created
bash
Step 2: Remove Docker Containers
As in the previous example, you must transmit the result to the command docker rm
.
docker rm $(docker ps -a -f status=exited -f status=created -q)
bash
The method involves finding all Docker containers that match a particular pattern and then deleting them with awk
, xargs
And docker rm
. This technique is a powerful way to selectively delete containers.
Step 1: Find All Containers with a Pattern
If you use the command docker ps -a
in combination with grep
, you will get all the containers whose name or tags match a specific model. For example, this command lists containers whose name begins with “test-”:
docker ps -a | grep "test-"
bash
Step 2: Remove Docker Containers
The command awk
allows you to select specific columns in output result. In this case, the objective is to extract the first column, which contains the container identifiers. Then we can use xargs
to transmit the identifiers to the order docker rmi
and delete Docker containers.
docker ps -a | grep "test-" | awk '{print $1}'. | xargs docker rmi
bash
You can stop and delete all active and inactive containers from your system at once. This can be useful if you want to perform a complete cleaning of your Docker environment.
Step 1: List Containers
To check the list of containers, type the following command:
Step 2: Stop Containers
Once you have made your decision, transfer the output from the previous step to docker stop
. This will stop all containers.
docker stop $(docker ps -a -q)
bash
Step 3: Remove Stopped Docker Containers
Once all containers have been stopped, you can delete them with the command docker rm
:
docker rm $(docker ps -a -q)
bash
Unlike normal Docker containers, Docker container volumes are mechanisms with which data can be persisted and exchanged between containers and the host system. You can find more tutorials on how to delete a Docker volume or Docker image in our guide.