我正在使用适用于 Windows 的 Docker 桌面。当我尝试通过此命令删除所有图像时:
docker rmi $(docker images -q)
我在命令提示符下收到此错误消息:
未知速记标志:-q 中的“q”)
我在 Window 10 Pro 上运行Docker
我正在使用适用于 Windows 的 Docker 桌面。当我尝试通过此命令删除所有图像时:
docker rmi $(docker images -q)
我在命令提示符下收到此错误消息:
未知速记标志:-q 中的“q”)
我在 Window 10 Pro 上运行Docker
语法是 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 上从 cmd 切换到 PowerShell。cmd 误解了某些命令并尝试将 -q 附加到外部 rmi 命令。
使用docker system prune -a或docker image prune -a命令删除任何未使用或悬空的图像。
Windows 10 Powershell,很简单。
以下命令显示所有图像:
码头工人 -a -q
输出这个:
PS C:\Users\UserName> docker images -a -q
86fa138dd93d
7c3a8b83a719
6636e7059d8d
然后,对于每个图像
docker rmi ##########
其中##### 是图像ID
你忘了-a
. 要删除所有图像,请使用以下命令:
docker image prune -a -f
请记住,您必须在删除所有图像之前删除所有关联的容器。
要删除所有正在使用的容器:
docker container prune -f
这是一种 bash shell 语法,适用于 docker 的 Linux 安装。要让它在 Windows 上运行,请尝试在 Windows 上安装 bash shell 并从该 shell 中运行它。Windows 命令提示符和 powershell 无法理解该语法。
在 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 }
一个一个地删除它们
将其保存在 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