Docker服务彻底清空的所有相关资源(容器、镜像、网络、数据卷等)

需要彻底清空Docker服务的所有相关资源(容器、镜像、网络、数据卷等),以下是分步操作指南,涵盖安全清理和强制清理两种场景:

文章目录

一、前置准备:停止所有运行中的容器

首先需要停止所有处于运行状态的Docker容器,否则无法删除运行中的容器,执行命令:

bash 复制代码
# 停止所有运行中的容器(通过docker ps -q获取所有运行中容器ID)
docker stop $(docker ps -q)

如果需要停止所有容器(包括已停止的容器无需操作,此命令仅针对运行中容器,无运行容器时执行无副作用)。

二、删除所有容器

删除Docker中所有的容器(无论是否处于运行状态),释放容器占用的资源:

bash 复制代码
# 删除所有容器(-f 强制删除,即使容器未停止;docker ps -a -q 获取所有容器ID)
docker rm -f $(docker ps -a -q)

三、删除所有镜像

删除本地存储的所有Docker镜像,释放镜像占用的磁盘空间(镜像文件通常占用较大空间):

bash 复制代码
# 删除所有Docker镜像(-f 强制删除,docker images -q 获取所有镜像ID)
docker rmi -f $(docker images -q)

注意:如果镜像被容器(即使是已停止的容器)引用,直接删除会失败,步骤二已删除所有容器,此步骤可正常执行。

四、删除所有自定义网络

Docker默认会创建一些内置网络(bridge、host、none),此命令仅删除你自定义创建的网络,不影响内置网络:

bash 复制代码
# 删除所有自定义Docker网络
docker network rm $(docker network ls -q)

补充:如果提示"网络正在被使用",说明还有未删除的容器引用该网络,重新执行步骤二即可解决。

五、删除所有数据卷(谨慎操作!)

数据卷是Docker持久化数据的核心,此操作会永久删除所有数据卷中的数据(如数据库数据、配置文件等),无法恢复,请确保已备份重要数据后再执行:

bash 复制代码
# 1. 先查看所有数据卷(确认需要删除的卷)
docker volume ls
# 2. 删除所有未被使用的数据卷(安全选项,不会删除被容器引用的卷)
docker volume prune -f
# 3. 强制删除所有数据卷(无论是否被引用,风险极高!)
docker volume rm $(docker volume ls -q)

六、一键完整清空(快捷命令)

如果需要快速执行所有清空操作(已包含上述所有步骤,谨慎使用,数据卷为强制删除):

bash 复制代码
# 停止所有容器 → 删除所有容器 → 删除所有镜像 → 删除所有自定义网络 → 删除所有数据卷
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内置的清理命令,安全无风险:

bash 复制代码
# 清理所有未被使用的Docker资源,执行前会有确认提示,添加 -f 可跳过确认
docker system prune -a -f
# 说明:-a 表示清理所有无用镜像(包括未被标签的镜像),默认仅清理悬空镜像;-f 强制执行,无需手动确认

验证是否清空成功

执行以下命令,若均无输出,则说明Docker相关资源已全部清空:

bash 复制代码
docker ps -a       # 查看所有容器,无输出即无容器
docker images     # 查看所有镜像,无输出即无镜像
docker network ls # 仅保留bridge、host、none三个内置网络即为正常
docker volume ls  # 无输出即无数据卷

总结

  1. 核心步骤:停止容器 → 删除容器 → 删除镜像 → 删除网络 → 删除数据卷(按顺序执行更稳妥);
  2. 谨慎操作:数据卷删除会永久丢失数据,务必先备份;
  3. 日常维护:优先使用 docker system prune -a 清理无用资源,无需彻底清空;
  4. 一键命令:适合测试环境快速重置Docker环境,生产环境禁止随意使用。
相关推荐
什么都不会的Tristan2 小时前
微服务保护
运维·微服务·架构
Run_Teenage2 小时前
Linux:匿名管道(实现个进程池)和命名管道
linux·运维·服务器
warton882 小时前
proxysql配置mysql mgr代理,实现读写分离
linux·运维·数据库·mysql
skywalk81632 小时前
Ubuntu22.04安装docker并启动 dnote服务
linux·ubuntu·docker·dnote
上天_去_做颗惺星 EVE_BLUE2 小时前
Android设备与Mac/Docker全连接指南:有线到无线的完整方案
android·linux·macos·adb·docker·容器·安卓
-dcr2 小时前
52.kubernetes基础
运维·云原生·kubernetes
BingoXXZ2 小时前
20260114Linux学习笔记
linux·服务器·笔记·学习
羊村积极分子懒羊羊2 小时前
软件管理(网络软件仓库的使用方法)
linux
匀泪2 小时前
CE(SELinux)
运维·服务器