当前位置: 首页 > 面试题库 >

Docker移除 TAG图片

童冠玉
2023-03-14
问题内容

root@server:~# docker images -a
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
5e2dfc857e73 5 days ago 261.6 MB
d053e988f23d 5 days ago 261.6 MB
1d5d4a2d89eb 5 days ago 261.6 MB
ea0d189fdb19 5 days ago 100.5 MB
26c6175962b3 5 days ago 100.5 MB
73d5cec4a0b3 5 days ago 100.5 MB
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 images -q -a | xargs docker inspect --format='{{.Id}}{{range $rt := .RepoTags}} {{$rt}} {{end}}'|grep -v ':'

但是,其他一些可能需要其中一些未标记的图像。

我更喜欢只删除悬空的图像:

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

正如我在2016年9月针对“ docker 1.13+”中提到的“
如何删除旧的和未使用的Docker映像
”中所述,您还可以执行以下image prune命令:

docker image prune

话虽如此,Janaka Bandara在评论中提到:

这并 没有<none>为我删除带有标签的图像(例如foo/bar:<none>);我不得不使用docker images --digestsdocker rmi foo/bar@<digest>

Janaka 从 Paul V. Novarese 引用了“
如何删除带有标签的签名图像
” :

# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
pvnovarese/mprime        latest              459769dbc7a1        5 days ago          4.461 MB
pvnovarese/mprime        <none>              459769dbc7a1        5 days ago          4.461 MB

诊断步骤

如果使用该 --digests=true
选项,
则可以看到这两个条目的区别(未标记的条目具有Docker Content Trust签名摘要):

# docker images --digests=true
REPOSITORY               TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
pvnovarese/mprime        latest              <none>                                                                    459769dbc7a1        5 days ago          4.461 MB
pvnovarese/mprime        <none>              sha256:0b315a681a6b9f14f93ab34f3c744fd547bda30a03b55263d93861671fa33b00   459769dbc7a1        5 days ago

请注意,Paul还提到了Moby问题18892:

拉取签名的图像后,<none>docker images”输出中会有一个“额外”条目(带有标记)。
这使rmi图像难以处理(您必须强行使用图像,否则首先删除标记正确的条目,或通过摘要删除)。



 类似资料:
  • 我有一个semilogx情节,我想删除xticks。我试过:

  • 和以下内容: 获取以下错误:

  • 我正在OS X 10.8.4(Mountain Lion)下的Vagrant下运行Docker,每当我试图删除一个保存的图像时,我会得到一个错误: 根据帮助,正确的语法是,我不知道该如何解释。 如何删除图像?   有趣的是,当我运行时,根本没有容器显示。运行将显示四(4)个图像和一(1)个图像。

  • 问题内容: 在Firefox中,只有我的视频缩略图在图像的底部和边框之间显示2-3像素的神秘空白(请参阅下文)。 我在Firebug中尝试了所有我能想到的一切,但是没有运气。 如何删除空白? 问题答案: 您会看到下脚的空间(垂悬在“ y”和“ p”底部的位),因为默认情况下是内联元素。这消除了差距:

  • 有一个标记,它在运行后自动移除容器。我想知道对于特定的服务,是否有一个与docker-compose.yml等效的配置,因为我在yml中获得的其中一个服务是一个一次性构建过程,它应该只输出编译文件并自行消失。

  • 我有以下图片: 当我试图移除其中一个时,我得到: 我怎样才能移除它们?为什么会有这样的冲突?