Should I be concerned about excess, non-running, Docker containers?
The containers that are not running are not taking any system resources besides disk space.
It is usually good to clean up after yourself, but if you have a lot of them sitting around it shouldn't slow down performance at all.
If you do notice a slow down when running docker commands with lots of stopped containers, it might be a bug in docker, and you should submit a bug.
The docker run
documentation describes how to automatically clean up the container and remove the file system when the container exits:
--rm=false: Automatically remove the container when it exits (incompatible with -d)
The above shows that by default containers are not removed, but adding --rm=true
or just the short-hand --rm
will work like so:
sudo docker run -i -t --rm ubuntu /bin/bash
When you exit from the container it will be automatically removed.
You can test this by listing your docker containers in one terminal window:
watch -n1 'sudo ls -c /var/lib/docker/containers'
And then in another window run this command to run multiple docker containers that will all automatically exit after sleeping for up to 10 seconds.
for i in {1..10}; do sudo docker run --rm ubuntu /bin/sleep $i & done
If you run a container with a volume and do not use docker rm -v to remove it then the volume is not being removed after you remove a container. Also there is an issue with a vfs storage driver. If you forget to clean, volumes will eat up your disk space.
I am unsure of what performance or memory/storage penalties these non-running containers incur.
In order to assess how much storage non-running Docker containers are using, you may run:
docker ps --size --filter "status=exited"
-
--size
: display total file sizes (FYI: Explain the SIZE column in "docker ps -s" and what "virtual" keyword means #1520). -
--filter "status=exited"
: list only stopped containers.
Equivalently, you could run: docker container ls --filter "status=exited"
You may also use the command docker system df
(introduced in Docker 1.13.0, January 2017) to see docker disk usage, e.g.:
username@server:~$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 44 28 114.7GB 84.84GB (73%)
Containers 86 7 62.43GB 41.67GB (66%)
Local Volumes 2 1 0B 0B
Build Cache 0B 0B