Docker无法删除所有图像

问题描述 投票:1回答:8

我正在使用Docker Desktop for Windows。当我尝试通过此命令删除所有图像时:

docker rmi $(docker images -q)

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

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

我在Window 10 Pro上运行Docker

docker docker-for-windows docker-windows docker-desktop docker-on-windows
8个回答
2
投票

语法是特定于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 }"

1
投票

Windows 10 Powershell,很容易。

以下命令显示所有图像:

码头工人-a -q

输出:

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

然后,为每个图像做

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

其中#####是图像ID


0
投票

看看类似的issue。您使用的语法是unix特定的docker rmi $(command)。这被称为command substitution,可能不适用于Windows。


0
投票

在windows中,你应该是windows命令。

在powershell中,它将是:

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

哪里

码头图像-a -q

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

foreach-object {$ i = $ PSItem.ToString(); $ cmd =“docker”; &$ cmd“rmi”$ i}

一个一个地删除它们


0
投票

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


0
投票

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


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

0
投票

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

docker rmi -f $(docker images -a -q)

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

要删除所有容器(包括其卷),请使用:

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

如果要删除连续的所有内容(未使用的容器,卷,网络和图像):

docker system prune -a --volumes

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.