如何删除所有正在运行的Docker容器?

我记得使用这个:

docker rm -f `docker ps -aq` 

链几个月前没有问题的命令,但现在这是行不通的,我得到以下输出:

 unknown shorthand flag: 'a' in -aq` See 'docker rm --help'. 

什么改变了? 我怎样才能删除所有docker运行容器在一行? 万一它有帮助,我在Windows 10上使用docker for windows(本机与Hyper V,而不是与VirtualBox),并且我使用的命令已与我以前的Windows 8泊坞窗工具箱安装正常工作。

编辑 :不知道为什么downvote是,但docker是一个重要的编程和运行依赖关系的工具,所以我不知道为什么它downvoted和标记为应该closures主题。

直到现在(docker version 1.12),我们使用下面的命令删除所有正在运行的容器(同样,如果我们想删除卷,我们可以使用它的相应标签-v在下面的命令中手动完成),

删除所有已退出的容器

 docker rm $(docker ps -q -f status=exited) 

删除所有已停止的容器

 docker rm $(docker ps -a -q) 

删除所有正在运行和停止的容器

 docker stop $(docker ps -a -q) docker rm $(docker ps -a -q) 

删除所有容器,没有任何标准

 docker container rm $(docker container ps -aq) 

但是,在1.13及以上版本中,为了完整的系统和清理,我们可以直接使用下面的命令,

 docker system prune 

所有未使用的容器,图像,networking和卷将被删除。 另外,单独的,即单独的,我们可以使用下面的命令,清理组件,

 docker container prune docker image prune docker network prune docker volume prune 

我有同样的问题:我在Windows机器上,并在VirtualBox中使用docker和命令docker rm -f ${docker ps -aq}运作良好。 然后,我切换到Windows的Docker ,该命令没有在Windows命令行工作。 但使用cygwingit bash解决了我的问题。

用这个。

docker rm -f`docker ps | grep -v CONTAINER | awk“{print $ 1}”

如果你想包括以前停止的容器

docker rm -f`docker ps -a | grep -v CONTAINER | awk“{print $ 1}”

注意docker ps之前的反引号。