Docker无法删除所有图像
我正在使用Windows的Docker桌面。当我尝试通过此命令删除所有图像时:Docker无法删除所有图像,docker,docker-for-windows,docker-desktop,Docker,Docker For Windows,Docker Desktop,我正在使用Windows的Docker桌面。当我尝试通过此命令删除所有图像时: docker rmi $(docker images -q) 我在命令提示符中收到此错误消息: 未知速记标记:q中的“q”) 我正在Windows10Pro上运行Docker。您使用的语法是unix特有的docker rmi$(命令)。这被调用,可能在windows中不起作用。在windows中,您应该使用windows命令 在powershell中,它将类似于: docker images -a -q | for
docker rmi $(docker images -q)
我在命令提示符中收到此错误消息:
未知速记标记:q中的“q”)
我正在Windows10Pro上运行Docker。您使用的语法是unix特有的
docker rmi$(命令)
。这被调用,可能在windows中不起作用。在windows中,您应该使用windows命令
在powershell中,它将类似于:
docker images -a -q | foreach-object { $i = $PSItem.ToString(); $cmd = "docker"; & $cmd "rmi" $i }
在哪里
docker images-a-q
获取所有图像(包括中间图像)的ID,以及
foreach对象{$i=$PSItem.ToString();$cmd=“docker”&$cmd“rmi”$i}
逐个删除它们这是一种bashshell语法,适用于docker的Linux安装。要使其在Windows上工作,请尝试在Windows上安装bash shell并从该shell内部运行它。Windows命令提示符和powershell无法理解该语法。语法特定于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 }"
使用或命令删除任何未使用或悬空的图像。Windows 10 Powershell,这很容易 以下命令显示所有图像: docker-a-q 输出如下:
PS C:\Users\UserName> docker images -a -q
86fa138dd93d
7c3a8b83a719
6636e7059d8d
然后,对每个图像执行以下操作:
docker rmi##########
其中#######是图像id将其保存在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
您忘记了
-a
。要删除所有图像,请使用以下命令:
docker image prune -a -f
请记住,在删除所有图像之前,必须删除所有关联的容器
要删除所有正在使用的容器,请执行以下操作:
docker container prune -f
老问题,但如果您在Windows上,请从cmd切换到PowerShell。cmd误解了某些命令,并试图将-q附加到outter rmi命令。它是哪个版本的docker?您可以通过运行
docker version
找到答案。还可以尝试将-q
参数替换为-quiet
。如果您想清除所有未使用的内容,docker system prune
可能会派上用场。“foreach-object”不能识别为内部或外部命令、可操作程序或批处理文件。”从命令行您是从powershell运行的吗?对于problem@kakigadol,docker image prune-a-f
在WIndows上就像一个符咒,但您需要首先停止docker stop$(docker ps-a-q)
并删除docker container prune-f
所有容器