"docker stop"和"docker rm"有什么区别?

mku*_*kov 35 docker

我最初认为这docker stop相当于vagrant halt,而且docker rmvagrant destroy.

但从根本上说,docker容器是无状态的,除了VOLUME语句之外docker rm,如果没有调用,AFAIK甚至会保留目录内容-v.

那么区别是什么呢?

Von*_*onC 44

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

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

在生命周期方面,您应该首先停止容器,然后将其删除.它为容器PID 1提供了收集僵尸进程的机会.

  • 如果我运行`docker stop`,然后运行`docker start`,我会丢失容器状态吗?我以为我知道。 (2认同)

小智 6

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