如何使用相同的imageID删除多个docker镜像?

Had*_*adi 38 containers image docker

我创建了一个本地docker注册表,然后从docker hub中提取了一些docker镜像,然后将它们推送到本地注册表.现在我想删除我的本地图像.但问题是imageID图像是相同的,我不能删除它们.我搜索了解决方案,但我找不到解决方案.

>> docker images

REPOSITORY                     TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
localhost:5000/[repo1]        v-0.9.1              810001cb03af        4 weeks ago         594.6 MB
[myaccount]/[repo1]           v-0.9.1              810001cb03af        4 weeks ago         594.6 MB
Run Code Online (Sandbox Code Playgroud)

如你所见image ID,两张图片都是一样的.我该如何删除它们?

编辑

  • 我的码头版:

    Docker version 1.8.2, build 0a8c2e3

  • 输出docker rmi 810001cb03af:

    来自守护程序的错误响应:冲突,无法删除图像810001cb03af,因为它被标记在多个存储库中,使用-f强制错误:无法删除图像:[810001cb03af]

  • 如果我这样做docker rmi -f 81000将删除他们两个,我需要再次拉.

use*_*671 52

这是一种你可以做到这一点的方法.运行命令:

docker images | grep 810001cb03af | awk '{print $1 ":" $2}' | xargs docker rmi
Run Code Online (Sandbox Code Playgroud)

810001cb03af你的图片ID 在哪里

  • 您的方法将删除两个图像.我想删除本地的那个. (3认同)

spe*_*007 28

这是一种方式:

如果图像id相同,则可以将存储库和标签数据提供给"docker rmi"命令以移除图像.

命令

docker rmi [repository_name1]:[tag1] [repository_name2]:[tag2]
Run Code Online (Sandbox Code Playgroud)

docker rmi test-nginx:latest ubuntu:latest
Run Code Online (Sandbox Code Playgroud)

注意:需要对图像进行适当的命名和标记,以便有效地使用上述命令来满足问题中提到的要求.

请参阅Docker文档以获取"docker rmi"命令帮助:此处


Ahm*_*any 11

这个场景在rmi命令文档中有详细描述

您可以使用短ID或长ID,其标记或摘要删除图像.如果图像有一个或多个引用它的标记,则必须在删除图像之前删除所有标记.通过标记删除图像时,将自动删除摘要引用.

鉴于,

$ docker images

REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
test1                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
test2                     latest              fd484f19954f        23 seconds ago      7 B (virtual 4.964 MB)
Run Code Online (Sandbox Code Playgroud)

您也可以删除标签(最后一个标签也会删除图片):

$ docker rmi test1

Untagged: test1:latest

$ docker rmi test2

Untagged: test2:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
Run Code Online (Sandbox Code Playgroud)

或者,强迫它:

$ docker rmi -f fd484f19954f

Untagged: test1:latest
Untagged: test2:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
Run Code Online (Sandbox Code Playgroud)

注意:这些不是具有相同ID的多个图像.这实际上是在多个存储库中引用的一个图像(即给定多个名称/标签)


Mur*_*hna 7

运行以下命令以删除具有相同IMAGE ID的多个docker镜像.

sudo docker rmi -f **IMAGE ID**
Run Code Online (Sandbox Code Playgroud)