What's the difference between "docker stop" and "docker rm"?

docker stop preserves the container in the docker ps -a list (which gives the opportunity to commit it if you want to save its state in a new image).

It sends SIGTERM first, then, after a grace period, SIGKILL.

docker rm will remove the container from docker ps -a list, losing its "state" (the layered filesystems written on top of the image filesystem). It cannot remove a running container (unless called with -f, in which case it sends SIGKILL directly).

In term of lifecycle, you are supposed to stop the container first, then remove it. It gives a chance to the container PID 1 to collect zombie processes.

Tags:

Docker