Should I be concerned about excess, non

Every docker run command, or every RUN command inside a Dockerfile, creates a container. If the container is no longer running it can still be seen with docker ps -a .

Should I be concerned with having an enormous list of non-running containers? Should I be issuing docker rm on non-running containers?

I am unsure of what performance or memory/storage penalties these non-running containers incur.


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.

链接地址: http://www.djcxy.com/p/18238.html

上一篇: 如何删除旧的和未使用的Docker镜像

下一篇: 我应该关心多余的,不是