我应该关心多余的,不运行的Docker容器吗?
每个docker run
命令或Dockerfile中的每个RUN
命令都会创build一个容器。 如果容器不再运行,仍然可以看到docker ps -a
。
我应该关心的是有一大堆没有运行的容器吗? 我应该在非运行容器上发行docker rm
吗?
我不确定这些不运行的容器会产生什么性能或内存/存储处罚。
除了磁盘空间以外,没有运行的容器不占用任何系统资源。
自己清理通常是很好的,但是如果你有很多人坐在这里,就不应该放慢性能。
如果在运行带有大量停止容器的docker命令时发现速度变慢,则可能是docker中的一个错误,并且应该提交一个错误。
docker run
文档介绍了如何在容器退出时自动清理容器并删除文件系统:
--rm=false: Automatically remove the container when it exits (incompatible with -d)
以上显示,默认情况下,容器不会被删除,但添加--rm=true
或只是简短的--rm
将会像这样工作:
sudo docker run -i -t --rm ubuntu /bin/bash
当你从容器中退出时,它将被自动删除。
您可以通过在一个terminal窗口中列出泊坞窗容器来testing:
watch -n1 'sudo ls -c /var/lib/docker/containers'
然后在另一个窗口中运行这个命令来运行多个docker容器,这些容器在hibernate10秒后都会自动退出。
for i in {1..10}; do sudo docker run --rm ubuntu /bin/sleep $i & done
如果使用卷运行容器,而不使用docker rm -v将其删除,则在删除容器后,卷不会被删除。 另外还有一个vfs存储驱动程序的问题。 如果您忘记清理,卷将占用您的磁盘空间。