如何删除多个 docker 具有相同 imageID 的图像?
How to remove multiple docker images with the same imageID?
我创建了一个 local docker registry,然后从 docker 集线器中提取了一些我的 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
如您所见,两张图片的 image ID
相同。我怎样才能删除它们?
编辑
我的docker版本:
Docker version 1.8.2, build 0a8c2e3
docker rmi 810001cb03af
的输出:
来自守护程序的错误响应:冲突,无法删除图像 810001cb03af,因为它在多个存储库中被标记,使用 -f 强制错误:无法删除图像:[810001cb03af]
如果我这样做 docker rmi -f 81000
它将删除它们,我需要再次拉动。
这是一种方法:
如果图像 id 相同,可以将存储库和标签数据提供给 "docker rmi" 命令以删除图像。
命令
docker rmi [repository_name1]:[tag1] [repository_name2]:[tag2]
例子
docker rmi test-nginx:latest ubuntu:latest
注意:需要适当地命名和标记图像才能有效地使用上述命令来满足问题中提到的要求。
参考 Docker 文档以获得 "docker rmi" 命令帮助:here
这里有一种方法可以做到这一点。 运行 命令:
docker images | grep 810001cb03af | awk '{print ":" }' | xargs docker rmi
其中 810001cb03af
是您的图片 ID。
我刚刚查看了 Docker 文档,我认为这也是可以做到的
rmi
您可以使用图像的短 ID 或长 ID、标签或摘要来删除图像。如果一张图片有一个或多个标签或摘要引用,您必须在删除图片之前将它们全部删除。
因此,除了使用 ID,您还可以这样做 ---
$ docker rmi test1
Untagged: test1:latest
$ docker rmi test2
Untagged: test2:latest
运行 以下命令删除具有相同 IMAGE ID.
的多个 docker 图像
sudo docker rmi -f **IMAGE ID**
您应该尝试使用摘要删除图像,
$ docker images --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
localhost:5000/test/busybox <none> sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf 4986bf8c1536
$ docker rmi localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
Untagged: localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
Deleted: 4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125
Deleted: ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2
Deleted: df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b
简答:
通过 id 删除它并使用 -f
标志:
$ docker rmi -f fd484f19954f
Untagged: test1:latest
Untagged: test2:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
说明
这些不是具有相同 ID 的多张图片。这实际上是在多个存储库中引用的一个图像(即给定多个 names/tags)。
这种情况在 rmi command documentation
中有准确描述
You can remove an image using its short or long ID, its tag, or its digest. If an image has one or more tag referencing it, you must remove all of them before the image is removed. Digest references are removed automatically when an image is removed by tag.
给定,
$ 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)
作为上述简短回答的替代方法,您可以一个一个地删除标签(最后一个标签实际上也会删除图像):
$ docker rmi test1:latest
Untagged: test1:latest
$ docker rmi test2:latest
Untagged: test2:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
您可以使用命令 docker rmi IMAGE_NAME:TAG_NAME,它会起作用。
您可以通过多种方式删除。
a) 只删除一个:
$ sudo docker rmi login(REPOSITORY NAME):latest(TAG NAME)
b) 使用 -f
命令删除所有具有匹配 ID 的内容:
$ sudo docker rmi -f 91dfd8adbf04(IMAGE ID)
我创建了一个 local docker registry,然后从 docker 集线器中提取了一些我的 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
如您所见,两张图片的 image ID
相同。我怎样才能删除它们?
编辑
我的docker版本:
Docker version 1.8.2, build 0a8c2e3
docker rmi 810001cb03af
的输出:来自守护程序的错误响应:冲突,无法删除图像 810001cb03af,因为它在多个存储库中被标记,使用 -f 强制错误:无法删除图像:[810001cb03af]
如果我这样做
docker rmi -f 81000
它将删除它们,我需要再次拉动。
这是一种方法:
如果图像 id 相同,可以将存储库和标签数据提供给 "docker rmi" 命令以删除图像。
命令
docker rmi [repository_name1]:[tag1] [repository_name2]:[tag2]
例子
docker rmi test-nginx:latest ubuntu:latest
注意:需要适当地命名和标记图像才能有效地使用上述命令来满足问题中提到的要求。
参考 Docker 文档以获得 "docker rmi" 命令帮助:here
这里有一种方法可以做到这一点。 运行 命令:
docker images | grep 810001cb03af | awk '{print ":" }' | xargs docker rmi
其中 810001cb03af
是您的图片 ID。
我刚刚查看了 Docker 文档,我认为这也是可以做到的
rmi
您可以使用图像的短 ID 或长 ID、标签或摘要来删除图像。如果一张图片有一个或多个标签或摘要引用,您必须在删除图片之前将它们全部删除。
因此,除了使用 ID,您还可以这样做 ---
$ docker rmi test1
Untagged: test1:latest
$ docker rmi test2
Untagged: test2:latest
运行 以下命令删除具有相同 IMAGE ID.
的多个 docker 图像sudo docker rmi -f **IMAGE ID**
您应该尝试使用摘要删除图像,
$ docker images --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
localhost:5000/test/busybox <none> sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf 4986bf8c1536
$ docker rmi localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
Untagged: localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
Deleted: 4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125
Deleted: ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2
Deleted: df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b
简答:
通过 id 删除它并使用 -f
标志:
$ docker rmi -f fd484f19954f
Untagged: test1:latest
Untagged: test2:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
说明
这些不是具有相同 ID 的多张图片。这实际上是在多个存储库中引用的一个图像(即给定多个 names/tags)。 这种情况在 rmi command documentation
中有准确描述You can remove an image using its short or long ID, its tag, or its digest. If an image has one or more tag referencing it, you must remove all of them before the image is removed. Digest references are removed automatically when an image is removed by tag.
给定,
$ 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)
作为上述简短回答的替代方法,您可以一个一个地删除标签(最后一个标签实际上也会删除图像):
$ docker rmi test1:latest
Untagged: test1:latest
$ docker rmi test2:latest
Untagged: test2:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
您可以使用命令 docker rmi IMAGE_NAME:TAG_NAME,它会起作用。
您可以通过多种方式删除。
a) 只删除一个:
$ sudo docker rmi login(REPOSITORY NAME):latest(TAG NAME)
b) 使用 -f
命令删除所有具有匹配 ID 的内容:
$ sudo docker rmi -f 91dfd8adbf04(IMAGE ID)