docker image rm
| 描述 | 删除一个或多个镜像 |
|---|---|
| 用法 | docker image rm [OPTIONS] IMAGE [IMAGE...] |
| 别名 | docker image remove docker rmi |
描述
从主机节点删除(并取消标记)一个或多个镜像。如果一个镜像有多个标签,使用此命令并以标签作为参数只删除该标签。如果该标签是该镜像的唯一标签,则会同时删除镜像和标签。
这不会从注册表中删除镜像。您不能删除正在运行的容器的镜像,除非使用 -f 选项。要查看主机上的所有镜像,请使用 docker image ls 命令。
选项
| 选项 | 默认值 | 描述 |
|---|---|---|
-f, --force | 强制删除镜像 | |
--no-prune | 不删除未标记的父级 | |
--platform | API 1.50+ 仅删除给定平台变体。格式为 os[/arch[/variant]](例如,linux/amd64) |
示例
您可以使用镜像的短 ID、长 ID、标签或摘要来删除镜像。如果一个镜像有一个或多个标签引用它,您必须在删除镜像之前删除所有这些标签。当按标签删除镜像时,摘要引用会自动删除。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test1 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
test 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 fd484f19954f
Error: Conflict, cannot delete image fd484f19954f because it is tagged in multiple repositories, use -f to force
2013/12/11 05:47:16 Error: failed to remove one or more images
$ docker rmi test1:latest
Untagged: test1:latest
$ docker rmi test2:latest
Untagged: test2:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
$ docker rmi test:latest
Untagged: test:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
如果您使用 -f 标志并指定镜像的短 ID 或长 ID,则此命令将取消标记并删除所有与指定 ID 匹配的镜像。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test1 latest fd484f19954f 23 seconds ago 7 B (virtual 4.964 MB)
test 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 -f fd484f19954f
Untagged: test1:latest
Untagged: test:latest
Untagged: test2:latest
Deleted: fd484f19954f4920da7ff372b5067f5b7ddb2fd3830cecd17b96ea9e286ba5b8
通过摘要拉取的镜像没有关联的标签
$ docker images --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
localhost:5000/test/busybox <none> sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf 4986bf8c1536 9 weeks ago 2.43 MB
使用摘要删除镜像
$ docker rmi localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
Untagged: localhost:5000/test/busybox@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf
Deleted: 4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125
Deleted: ea13149945cb6b1e746bf28032f02e9b5a793523481a0a18645fc77ad53c4ea2
Deleted: df7546f9f060a2268024c8a230d8639878585defcc1bc6f79d2728a13957871b
删除特定平台 (--platform)
--platform 选项允许您指定要删除的镜像的平台变体。默认情况下,docker image remove 会删除所有存在的平台变体。使用 --platform 选项可以指定要删除的镜像的特定平台变体。
删除特定平台会从所有引用相同内容的镜像中删除该镜像,并且需要使用 --force 选项。省略 --force 选项会发出警告,并取消删除操作
$ docker image rm --platform=linux/amd64 alpine
Error response from daemon: Content will be removed from all images referencing this variant. Use —-force to force delete.
平台选项采用 os[/arch[/variant]] 格式;例如,linux/amd64 或 linux/arm64/v8。架构和变体是可选的,如果省略,则默认为守护进程的本机架构。
您可以通过多次传递 --platform 标志,或者通过传递逗号分隔的平台列表来删除多个平台。以下选项的使用方式是等效的;
$ docker image rm --plaform linux/amd64 --platform linux/ppc64le myimage
$ docker image rm --plaform linux/amd64,linux/ppc64le myimage
以下示例将从包含多个平台变体的 alpine 镜像缓存中删除 alpine 镜像的 linux/amd64 和 linux/ppc64le 变体
$ docker image ls --tree
IMAGE ID DISK USAGE CONTENT SIZE EXTRA
alpine:latest a8560b36e8b8 37.8MB 11.2MB U
├─ linux/amd64 1c4eef651f65 12.1MB 3.64MB U
├─ linux/arm/v6 903bfe2ae994 0B 0B
├─ linux/arm/v7 9c2d245b3c01 0B 0B
├─ linux/arm64/v8 757d680068d7 12.8MB 3.99MB
├─ linux/386 2436f2b3b7d2 0B 0B
├─ linux/ppc64le 9ed53fd3b831 12.8MB 3.58MB
├─ linux/riscv64 1de5eb4a9a67 0B 0B
└─ linux/s390x fe0dcdd1f783 0B 0B
$ docker image --platform=linux/amd64,linux/ppc64le --force alpine
Deleted: sha256:1c4eef651f65e2f7daee7ee785882ac164b02b78fb74503052a26dc061c90474
Deleted: sha256:9ed53fd3b83120f78b33685d930ce9bf5aa481f6e2d165c42cbbddbeaa196f6f
命令完成后,alpine 镜像的给定变体将从镜像缓存中删除
$ docker image ls --tree
IMAGE ID DISK USAGE CONTENT SIZE EXTRA
alpine:latest a8560b36e8b8 12.8MB 3.99MB
├─ linux/amd64 1c4eef651f65 0B 0B
├─ linux/arm/v6 903bfe2ae994 0B 0B
├─ linux/arm/v7 9c2d245b3c01 0B 0B
├─ linux/arm64/v8 757d680068d7 12.8MB 3.99MB
├─ linux/386 2436f2b3b7d2 0B 0B
├─ linux/ppc64le 9ed53fd3b831 0B 0B
├─ linux/riscv64 1de5eb4a9a67 0B 0B
└─ linux/s390x fe0dcdd1f783 0B 0B