github编辑

删除本地镜像

基本用法

使用 docker image rm 删除本地镜像:

$ docker image rm [选项] <镜像1> [<镜像2> ...]

💡 docker rmidocker image rm 的简写,两者等效。


镜像标识方式

删除镜像时,可以使用多种方式指定镜像:

方式
说明
示例

短 ID

ID 的前几位(通常 3-4 位)

docker rmi 501

长 ID

完整的镜像 ID

docker rmi 501ad78535f0...

镜像名:标签

仓库名和标签

docker rmi redis:alpine

镜像摘要

精确的内容摘要

docker rmi nginx@sha256:...

使用短 ID 删除

$ docker image ls
REPOSITORY   TAG     IMAGE ID       SIZE
redis        alpine  501ad78535f0   30MB
nginx        latest  e43d811ce2f4   142MB

# 只需输入足够区分的前几位
$ docker rmi 501
Untagged: redis:alpine
Deleted: sha256:501ad78535f0...

使用镜像名删除

使用摘要删除

摘要删除最精确,适用于 CI/CD 场景:


理解输出信息

删除镜像时会看到两类信息:UntaggedDeleted

Untagged vs Deleted

操作
含义

Untagged

移除镜像的标签

Deleted

删除镜像的存储层

删除流程


批量删除

删除所有虚悬镜像

虚悬镜像(dangling):没有标签的镜像,通常是旧版本被新版本覆盖后产生的

删除所有未使用的镜像

按条件删除


删除失败的常见原因

原因一:有容器依赖

解决方案

原因二:多个标签指向同一镜像

原因三:被其他镜像依赖(中间层)

中间层镜像被其他镜像依赖,无法删除。需要先删除依赖它的镜像。


常用过滤条件

过滤条件
说明
示例

dangling=true

虚悬镜像

-f dangling=true

before=镜像

在某镜像之前

-f before=mongo:3.2

since=镜像

在某镜像之后

-f since=mongo:3.2

label=key=value

按标签过滤

-f label=version=1.0

reference=pattern

按名称模式

-f reference='*:latest'


清理策略

开发环境

CI/CD 环境

查看空间占用


本章小结

操作
命令

删除指定镜像

docker rmi 镜像名:标签

强制删除

docker rmi -f 镜像名

删除虚悬镜像

docker image prune

删除未使用镜像

docker image prune -a

批量删除

docker rmi $(docker images -q -f ...)

查看空间占用

docker system df

延伸阅读

最后更新于