容器删除与清理
容器停止运行后会占用磁盘空间,定期清理可释放资源。
删除容器
docker rm 命令
Bash
# 删除已停止的容器
docker rm my-nginx
# 删除多个容器
docker rm container1 container2 container3
# 通过容器 ID 删除
docker rm a1b2c3d4e5f6
强制删除运行中的容器
Bash
# 强制删除正在运行的容器
docker rm -f my-nginx
# 等价于先 stop 再 rm
docker stop my-nginx
docker rm my-nginx
-f参数会立即强制停止并删除容器,不会等待优雅退出,数据可能丢失。
自动清理
运行时自动删除
Bash
# --rm 参数:容器停止后自动删除
docker run --rm -it ubuntu:latest /bin/bash
# 退出后容器自动删除
exit
# 容器不再出现在 docker ps -a 列表中
--rm适合一次性任务、测试、调试场景,避免留下僵尸容器。
批量清理
Bash
# 删除所有已停止的容器
docker container prune
# 确认提示
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
# 跳过确认提示
docker container prune -f
全面清理
Bash
# 删除所有未使用的资源(容器、网络、镜像、构建缓存)
docker system prune
# 包括未使用的镜像
docker system prune -a
# 包括数据卷
docker system prune --volumes
docker system prune是危险操作,特别是-a会删除所有未被容器使用的镜像,谨慎使用。
查找待清理容器
Bash
# 列出所有已停止的容器
docker ps -a --filter "status=exited"
# 列出创建但未启动的容器
docker ps -a --filter "status=created"
# 仅显示容器 ID
docker ps -a --filter "status=exited" -q
# 删除所有已退出的容器(一行命令)
docker rm $(docker ps -a --filter "status=exited" -q)
查看容器资源占用
删除前可检查容器是否仍在使用:
Bash
# 查看容器详情
docker inspect my-nginx
# 查看容器资源使用
docker stats my-nginx
# 查看容器文件系统变更
docker diff my-nginx
注意事项
- 删除容器会丢失容器层中的数据(非 Volume 挂载的部分)
- 如果容器使用了 Volume,Volume 数据不会随容器删除而删除
- 删除容器前确认无重要数据或已备份
- 生产环境建议先
docker stop再docker rm,避免数据损坏
要点总结
docker rm删除已停止容器,-f强制删除运行中容器docker run --rm容器停止后自动删除,适合一次性任务docker container prune批量清理所有已停止容器docker system prune全面清理未使用资源,谨慎使用-a- 删除容器前确认无重要数据,Volume 数据不受容器删除影响
📝 发现内容有误?点击此处直接编辑