我一开始以为docker stop
相当于vagrant halt
,docker rm
相当于vagrant destroy
.
但从根本上说,docker 容器是无状态的,除了 VOLUME
语句,AFAIK 甚至在 docker rm
之后保留目录内容,如果它不是用 调用的-v
。
那么,有什么区别呢?
最佳答案
docker stop
将容器保存在 docker ps -a
列表(如果您想将其状态保存在新图像中,则有机会提交它)。
它首先发送 SIGTERM,然后在宽限期之后发送 SIGKILL。
docker rm
将从 docker ps -a
列表中删除容器,失去其“状态”(写在图像文件系统之上的分层文件系统)。它不能移除 running 容器(除非使用 -f
调用,在这种情况下它会直接发送 SIGKILL)。
就生命周期而言,您应该先停止容器,然后再将其移除。它给 container PID 1 to collect zombie processes 一个机会.
关于docker - "docker stop"和 "docker rm"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33362856/