我记得使用
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 Docker工具箱安装中运行良好。
答案 0 :(得分:10)
到现在为止(Docker版本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
将删除所有未使用的容器,图像,网络和卷。另外,单独地,即单独地,我们可以使用以下命令来清理组件,
docker container prune
docker image prune
docker network prune
docker volume prune
答案 1 :(得分:5)
在cmd中运行时出现此问题。切换到PowerShell,它工作了!
答案 2 :(得分:3)
使用:
docker rm -f $(docker ps -aq)
答案 3 :(得分:1)
我遇到了同样的问题:我在Windows机器上并在VirtualBox中使用Docker并且命令docker rm -f ${docker ps -aq}
运行良好。然后我切换到 Docker for Windows ,命令不能在Windows命令行上运行。
但是使用 Cygwin 或 Git Bash 为我解决了这个问题。
答案 4 :(得分:1)
如果有人需要Windows Shell命令(停止和删除容器),这里是:
for /F %c in ('docker ps -a -q') do (docker stop %c)
for /F %c in ('docker ps -a -q') do (docker rm %c)
如果您将其放入批处理文件中,只需将%添加到%c:
for /F %%c in ('docker ps -a -q') do (docker stop %%c)
答案 5 :(得分:1)
在Windows PowerShell中运行docker命令将执行并运行大多数命令
希望您还记得在运行删除命令之前先停止运行容器
docker stop $(docker ps -aq)
答案 6 :(得分:0)
使用此:
docker rm -f $(docker ps | grep -v CONTAINER | awk '{print $1}')
如果要包含先前停止的容器:
docker rm -f $(docker ps -a | grep -v CONTAINER | awk '{print $1}')
答案 7 :(得分:0)
如果容器正在运行,则无法删除该映像。首先使用以下命令停止所有容器。
docker stop $(docker ps -aq)
您说的是针对docker ps -aq的输出运行停止。 'a'-给我所有的容器 'q'-仅返回容器ID。
然后运行以下命令以删除所有容器。
docker rm $(docker ps -aq)
答案 8 :(得分:0)
单个命令删除所有停止运行的容器(先停止然后修剪/删除它们。对我而言一直如此。
docker stop $(docker ps -a -q) && docker container prune -a
答案 9 :(得分:0)
尝试使用此命令。
docker rm -f $(docker ps | grep -v CONTAINER | awk '{print $1}')