Docker stop all containers

703 Views Asked by At

I've seen many times the follwoing command to stop all docker containers:

docker stop $(docker ps -a -q)

There are two things that are not clear to me:

  1. docker ps -a prints all containers, not only running ones, so what is the point to stop containers that are already stopped?
  2. If docker ps returns/prints nothing (there are no running images) then docker stop blaims that it's not enough arguments.

What do I miss here? What is the best approach to cleanup an environment after docker?

2

There are 2 best solutions below

0
LinPy On

use this will not run if the docker ps is empty:

docker ps -q | xargs --no-run-if-empty docker stop

normally you use rm and system prune if you really want to cleanup

0
Evhz On

You can also use this oneliner:

docker stop $(docker ps -aq | tr '\n' ' ')