Oleksandr Taran
Oleksandr Taran

Reputation: 701

Docker stop all containers

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?

Upvotes: 8

Views: 7142

Answers (2)

Evhz
Evhz

Reputation: 9248

You can also use this oneliner:

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

Upvotes: 3

LinPy
LinPy

Reputation: 18578

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

Upvotes: 8

Related Questions