Docker服务彻底清空的所有相关资源(容器、镜像、网络、数据卷等的流程
需要彻底清空Docker服务的所有相关资源(容器、镜像、网络、数据卷等),以下是分步操作指南,涵盖安全清理和强制清理两种场景:
一、前置准备:停止所有运行中的容器
首先需要停止所有处于运行状态的Docker容器,否则无法删除运行中的容器,执行命令:
# 停止所有运行中的容器(通过docker ps -q获取所有运行中容器ID) docker stop $(docker ps -q)
如果需要停止所有容器(包括已停止的容器无需操作,此命令仅针对运行中容器,无运行容器时执行无副作用)。
二、删除所有容器
删除Docker中所有的容器(无论是否处于运行状态),释放容器占用的资源:
# 删除所有容器(-f 强制删除,即使容器未停止;docker ps -a -q 获取所有容器ID) docker rm -f $(docker ps -a -q)
三、删除所有镜像
删除本地存储的所有Docker镜像,释放镜像占用的磁盘空间(镜像文件通常占用较大空间):
# 删除所有Docker镜像(-f 强制删除,docker images -q 获取所有镜像ID) docker rmi -f $(docker images -q)
注意:如果镜像被容器(即使是已停止的容器)引用,直接删除会失败,步骤二已删除所有容器,此步骤可正常执行。
四、删除所有自定义网络
Docker默认会创建一些内置网络(bridge、host、none),此命令仅删除你自定义创建的网络,不影响内置网络:
# 删除所有自定义Docker网络 docker network rm $(docker network ls -q)
补充:如果提示“网络正在被使用”,说明还有未删除的容器引用该网络,重新执行步骤二即可解决。
五、删除所有数据卷(谨慎操作!)
数据卷是Docker持久化数据的核心,此操作会永久删除所有数据卷中的数据(如数据库数据、配置文件等),无法恢复,请确保已备份重要数据后再执行:
# 1. 先查看所有数据卷(确认需要删除的卷) docker volume ls # 2. 删除所有未被使用的数据卷(安全选项,不会删除被容器引用的卷) docker volume prune -f # 3. 强制删除所有数据卷(无论是否被引用,风险极高!) docker volume rm $(docker volume ls -q)
六、一键完整清空(快捷命令)
如果需要快速执行所有清空操作(已包含上述所有步骤,谨慎使用,数据卷为强制删除):
# 停止所有容器 → 删除所有容器 → 删除所有镜像 → 删除所有自定义网络 → 删除所有数据卷 docker stop $(docker ps -q) && docker rm -f $(docker ps -a -q) && docker rmi -f $(docker images -q) && docker network rm $(docker network ls -q) && docker volume rm $(docker volume ls -q)
七、补充:Docker系统级清理(推荐日常维护)
如果不需要彻底清空,仅需清理无用资源(未被使用的容器、镜像、网络、数据卷),推荐使用Docker内置的清理命令,安全无风险:
# 清理所有未被使用的Docker资源,执行前会有确认提示,添加 -f 可跳过确认 docker system prune -a -f # 说明:-a 表示清理所有无用镜像(包括未被标签的镜像),默认仅清理悬空镜像;-f 强制执行,无需手动确认
验证是否清空成功
执行以下命令,若均无输出,则说明Docker相关资源已全部清空:
docker ps -a # 查看所有容器,无输出即无容器 docker images # 查看所有镜像,无输出即无镜像 docker network ls # 仅保留bridge、host、none三个内置网络即为正常 docker volume ls # 无输出即无数据卷
总结
- 核心步骤:停止容器 → 删除容器 → 删除镜像 → 删除网络 → 删除数据卷(按顺序执行更稳妥);
- 谨慎操作:数据卷删除会永久丢失数据,务必先备份;
- 日常维护:优先使用
docker system prune -a清理无用资源,无需彻底清空; - 一键命令:适合测试环境快速重置Docker环境,生产环境禁止随意使用。
到此这篇关于Docker服务彻底清空的所有相关资源(容器、镜像、网络、数据卷等的流程的文章就介绍到这了,更多相关Docker清空所有相关资源内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


最新评论