root@server:~# docker images -a        
REPOSITORY              TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
<none>                  <none>              5e2dfc857e73        5 days ago          261.6 MB
<none>                  <none>              d053e988f23d        5 days ago          261.6 MB
<none>                  <none>              1d5d4a2d89eb        5 days ago          261.6 MB
<none>                  <none>              ea0d189fdb19        5 days ago          100.5 MB
<none>                  <none>              26c6175962b3        5 days ago          100.5 MB
<none>                  <none>              73d5cec4a0b3        5 days ago          100.5 MB
<none>                  <none>              e19590e1bac1        5 days ago          100.5 MB

我试过以下几种方法:

docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

以及以下几点:

docker rmi $(docker images -f "dangling=true" -q)

得到以下错误:

docker: "rmi" requires a minimum of 1 argument.
See 'docker rmi --help'.

Usage:  docker rmi [OPTIONS] IMAGE [IMAGE...]

Remove one or more images

当前回答

试试这个,看看列表docker图像ID与标签<none>

docker images -a | awk '/^<none>/ {print $3}'

然后你可以用标签<none>删除所有图像。这对我很管用。

docker rmi $(docker images -a | awk '/^<none>/ {print $3}')

其他回答

Docker图像修剪删除所有悬空图像(那些没有标签的图像)。Docker image prune -a也会删除任何没有容器使用它们的映像。

这个stackoverflow线程解释了悬挂图像和未使用图像之间的区别。

使用Docker Desktop for Windows,您可以摆脱悬垂的图像

docker image prune

唯一能帮到我的就是

Docker images | grep none | awk '{打印$3;}' | xargs docker rmi—force

我有两张图片。这些文件也比较大,只有160MB,我不想要。

我尝试了docker图像修剪,但它没有帮助。

Docker images | grep none | awk '{打印$3;}' | xargs docker rmi 该命令返回如下信息:

Error response from daemon: conflict: 0d1227b90e3a不能删除(必须强制)-镜像正在被停止的容器c2c01a8c0cc9使用。来自守护进程的错误响应:冲突:791026064837不能删除(必须强制)-镜像被停止的容器使用53dee16ceb19。

还有一些容器需要这些图像。

使用docker容器ls -a | grep“c2c01a8c0cc9”,我可以检查它是哪个依赖项。

:

Docker images | grep none | awk '{打印$3;}' | xargs docker rmi—force

我现在已经删除了这些图像。

由于我不再需要这个容器,我删除了它:docker容器rm <container_name>

All

为windows爱好者共享PowerShell命令(以防你没有bash, grep或awk)

(docker images) -like '*<none>*' | ForEach-Object { 
  $imageid=($_ -split "\s+")[2]
  docker rmi -f $imageid
}

移除所有退出的容器

docker rm $(docker container ls -a -f status=exited -q)

或者根据模式移除容器

docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi