docker image rm

描述刪除一個或多個映象
用法docker image rm [OPTIONS] IMAGE [IMAGE...]
別名
docker image remove docker rmi

描述

從主機節點刪除(並取消標記)一個或多個映象。如果一個映象有多個標籤,使用此命令並以標籤作為引數只刪除該標籤。如果該標籤是該映象的唯一標籤,則會同時刪除映象和標籤。

這不會從登錄檔中刪除映象。您不能刪除正在執行的容器的映象,除非使用 -f 選項。要檢視主機上的所有映象,請使用 docker image ls 命令。

選項

選項預設值描述
-f, --force強制刪除映象
--no-prune不刪除未標記的父級
--platformAPI 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/amd64linux/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/amd64linux/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