“docker stop”和“docker rm”有什么区别?

我最初以为docker stop等于是vagrant halt ,而docker rm是为了vagrant destroy

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

那么区别是什么呢?

docker stop保留docker ps -a列表中的容器(如果要将其状态保存在新映像中,则提供机会提交该容器)。
它首先发送SIGTERM,然后在宽限期之后SIGKILL。

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

就生命周期而言,您应该先停止容器,然后将其取出。 它给了容器PID 1收集僵尸进程的机会 。