" docker stop"之间的区别是什么?和#34; docker rm"?

时间:2015-10-27 08:19:48

标签: docker

我最初认为docker stop相当于vagrant halt,而docker rm相当于vagrant destroy

但从根本上说,docker容器是无状态的,除了VOLUME语句,如果没有docker rm调用它,AFAIK即使在-v之后也会保留目录内容。

那么,有什么区别?

2 个答案:

答案 0 :(得分:38)

docker stop保留docker ps -a list中的容器(如果您想将其状态保存在新图像中,则可以提交容器)。
它首先发送SIGTERM,然后在宽限期后发送SIGKILL。

docker rm将从docker ps -a列表中删除容器,丢失其“状态”(在图像文件系统顶部写入的分层文件系统)。
它无法删除正在运行的容器(除非使用-f调用,在这种情况下它会直接发送SIGKILL。)

在生命周期方面,您应该首先停止容器,然后将其删除。它为container PID 1 to collect zombie processes提供了机会。

答案 1 :(得分:3)

docker rm 从您的存储位置(例如 debian:/var/lib/docker/containers/)中删除容器映像,而 docker stop 只是停止容器。