首页/云/云与容器速查/docker rmi 删除镜像
容器与 Docker106 条

docker rmi 删除镜像

删除本地镜像:被容器引用的镜像需先删容器,-f 强制;清理悬空镜像用 image prune,效果更安全。

云与容器速查云更新于 2026-10-13

docker rmi 是什么

docker rmi 删除本地镜像。删除的前提是没有任何容器引用它,包括已经停止的容器;被引用时会报冲突错误,需要先删容器或加 -f 强制解除引用。清理悬空镜像更适合用 image prune:它只处理没有标签、也没有容器引用的中间层,比手工挑镜像名安全得多。

基本信息

基本语法docker rmi 镜像[:标签] 或 镜像 ID
约束有容器引用(含已停止)时删除失败并报冲突
-f强制解除引用后删除,会连同依赖标签一起移除
清理悬空docker image prune;加 -a 会删除更多未使用镜像
行为边界删除镜像不影响正在运行的容器,容器层已加载

典型使用场景

  • 磁盘清理:删掉旧版本镜像,释放 /var/lib/docker 空间
  • 误推修正:标签打错后删除本地错误标签再重新构建
  • 仓库搬迁:确认新仓库拉取正常后,删掉本地旧仓库镜像
  • CI 机器瘦身:每次构建后清理上一版镜像,避免磁盘持续增长
  • 发布回滚准备:删除无用候选版本,仅保留可回滚的两个版本

删除与清理

删除与清理
docker images                          # 先看清镜像 ID 与标签指向
docker rmi nginx:1.26                  # 删除指定标签,不影响其他标签
docker rmi -f nginx:1.26               # 解除容器引用后强制删除
docker rmi $(docker images -q --filter "dangling=true")   # 删除悬空镜像
docker image prune                     # 更安全的悬空镜像清理方式
docker image prune -a                  # 删除所有未使用镜像,谨慎对待

删除失败原因对照

报错信息原因处理方式
image is being used by container有容器引用了该镜像先 docker rm 容器,或用 -f 强制
conflict: unable to delete存在停止状态的容器清理停止容器后再删镜像
No such image标签或 ID 写错用 docker images 核对实际名称
deleted but still referenced多个标签指向同一 ID逐个删除标签,直到 ID 不再出现
image prune -a 会清掉构建缓存与未使用的基础镜像,下一次构建可能全量重建并重新拉取依赖,耗时明显增加。生产与 CI 机器上要挑业务低峰执行。
删除镜像不影响正在运行的容器:容器启动时所需的层已经加载,删除只是让镜像引用消失,运行中的服务不会中断。

易错点

  • 删除时报冲突:还有停止状态的容器在引用该镜像
  • 在 CI 机器上无脑执行 prune -a,缓存清零导致构建时间暴涨
  • 删除镜像后直接重建容器,忘了本地已无基础镜像需要重新拉取
  • 多个标签指向同一镜像 ID,删了一个以为删干净了,实际仍占空间

数据来源与参考

  • Docker Docs:docker rmi
  • Docker Docs:docker image prune

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌