在 Docker 中,rm
和 rmi
是两个不同的命令,分别用于删除不同的对象:
docker rm
(删除容器)bash
docker rm [OPTIONS] CONTAINER [CONTAINER...]
-f
:强制删除正在运行的容器(先停止后删除)。-v
:同时删除与容器关联的匿名卷。示例:
# 删除已停止的容器
docker rm container_id
# 强制删除正在运行的容器
docker rm -f container_id
# 删除所有已停止的容器
docker rm $(docker ps -aq)
docker rmi
(删除镜像)bash
docker rmi [OPTIONS] IMAGE [IMAGE...]
-f
:强制删除镜像(即使有容器依赖它)。示例:
# 删除单个镜像
docker rmi image_id
# 强制删除镜像(即使有容器基于它)
docker rmi -f image_id
# 删除所有悬空镜像(未被任何容器引用的镜像)
docker rmi $(docker images -f "dangling=true" -q)
命令 | 操作对象 | 典型使用场景 | 注意事项 |
---|---|---|---|
docker rm |
容器 | 清理已停止或不需要的容器 | 默认只能删除已停止的容器 |
docker rmi |
镜像 | 清理本地不再需要的镜像 | 若镜像被容器引用,需先删除容器 |
删除镜像时报错:
Error: No such image: image_id
docker images
确认。删除容器时报错:
Error: You cannot remove a running container
docker stop
)或使用 -f
强制删除。依赖关系冲突:
若镜像被容器使用,需先删除容器才能删除镜像(或使用 docker rmi -f
)。
bash
# 删除所有停止的容器和未使用的镜像
docker system prune
bash
docker rmi $(docker images -aq)
通过合理使用这两个命令,可以有效管理 Docker 的存储空间和资源。