4

我正在使用适用于 Windows 的 Docker 桌面。当我尝试通过此命令删除所有图像时:

docker rmi $(docker images -q)

我在命令提示符下收到此错误消息:

未知速记标志:-q 中的“q”)

我在 Window 10 Pro 上运行Docker

4

9 回答 9

5

语法是 unix 特定的,因此您更改 Windows 的命令,您需要在 PowerShell 或 CMD 中运行整个命令。

删除容器:

powershell "docker ps -a -q | foreach-object { $i = $PSItem.ToString(); $cmd = 'docker'; & $cmd 'rm' '-f' $i }"

删除图像:

powershell "docker images -a -q | foreach-object { $i = $PSItem.ToString(); $cmd = 'docker'; & $cmd 'rmi' '-f' $i }"
于 2017-07-25T08:34:58.073 回答
2

老问题,但如果你在 Windows 上从 cmd 切换到 PowerShell。cmd 误解了某些命令并尝试将 -q 附加到外部 rmi 命令。

于 2019-06-13T12:36:30.240 回答
1

使用docker system prune -adocker image prune -a命令删除任何未使用或悬空的图像。

于 2017-07-25T09:12:02.293 回答
0

Windows 10 Powershell,很简单。

以下命令显示所有图像:

码头工人 -a -q

输出这个:

PS C:\Users\UserName> docker images -a -q
86fa138dd93d
7c3a8b83a719
6636e7059d8d

然后,对于每个图像

docker rmi ##########

其中##### 是图像ID

于 2018-04-20T07:35:18.250 回答
0

你忘了-a. 要删除所有图像,请使用以下命令:

docker image prune -a -f

请记住,您必须在删除所有图像之前删除所有关联的容器。

要删除所有正在使用的容器:

docker container prune -f
于 2019-02-19T07:40:35.003 回答
0

这是一种 bash shell 语法,适用于 docker 的 Linux 安装。要让它在 Windows 上运行,请尝试在 Windows 上安装 bash shell 并从该 shell 中运行它。Windows 命令提示符和 powershell 无法理解该语法。

于 2017-02-15T13:09:45.270 回答
0

在 windows 下,你应该 windows 命令。

在 powershell 中,它将类似于:

docker images -a -q | foreach-object { $i = $PSItem.ToString(); $cmd = "docker"; & $cmd "rmi" $i }

在哪里

码头工人图像 -a -q

获取所有图像(包括中间图像)的 ID,以及

foreach 对象 { $i = $PSItem.ToString(); $cmd = "码头工人"; & $cmd "rmi" $i }

一个一个地删除它们

于 2017-02-15T13:06:16.343 回答
0

看看类似的问题。您使用的语法是 unix 特定的docker rmi $(command)。这称为命令替换,可能在 Windows 中不起作用。

于 2017-02-15T10:31:39.653 回答
0

将其保存在 docker-clear.bat 中并执行以清除容器、图像、未使用的数据和卷

@echo off
REM Clear all the containers
FOR /f "tokens=*" %%i IN ('docker ps -aq') DO docker stop %%i && docker rm %%i
REM Clear all the images
FOR /f "tokens=*" %%i IN ('docker images --format "{{.ID}}"') DO docker rmi %%i -f
REM Clear unused data
docker system prune -f
REM Clear all volumes
docker volume prune -f
于 2018-09-12T10:17:15.320 回答