使用shell快速删除Docker容器、镜像和存储内容

使用 Shell 脚本快速清理 Docker 容器、镜像、卷和网络的命令集合,适用于 Linux/macOS 环境:


1. 删除所有 Docker 容器

bash 复制代码
# 强制删除所有运行中的和已停止的容器
docker rm -f $(docker ps -aq)
  • docker ps -aq:列出所有容器的 ID(包括停止的)。
  • docker rm -f:强制删除容器。

2. 删除所有 Docker 镜像

bash 复制代码
# 强制删除所有镜像(包括未被使用的中间层镜像)
docker rmi -f $(docker images -aq)
  • docker images -aq:列出所有镜像的 ID。
  • docker rmi -f:强制删除镜像。

3. 清理未使用的 Docker 资源

bash 复制代码
# 删除未使用的容器、网络、镜像(悬空镜像)和构建缓存
docker system prune -a -f
  • prune:清理未使用的资源。
  • -a:包括未使用的镜像(不仅仅是悬空镜像)。
  • -f:无需确认,直接执行。

4. 删除所有 Docker 卷

bash 复制代码
# 删除所有未使用的卷(谨慎操作,可能导致数据丢失)
docker volume prune -f
  • volume prune:清理未使用的卷(如数据库数据卷)。

5. 删除所有 Docker 网络

bash 复制代码
# 删除所有自定义网络(默认网络不会被删除)
docker network prune -f

6. 一键清理所有 Docker 资源

bash 复制代码
# 组合命令:删除容器、镜像、卷、网络等
docker rm -f $(docker ps -aq) 2>/dev/null || true
docker rmi -f $(docker images -aq) 2>/dev/null || true
docker volume prune -f
docker network prune -f
docker system prune -a -f
  • 2>/dev/null:忽略错误(如无容器/镜像时的报错)。
  • || true:确保脚本继续执行(即使前一条命令失败)。

注意事项

  1. 数据风险 :删除卷(volume prune)会永久移除数据(如数据库文件),谨慎操作!

  2. 生产环境 :避免直接使用 -f 强制删除,建议先手动确认资源。

  3. 仅清理未使用的资源 :如果只想清理悬空镜像(未被任何容器引用的镜像),使用:

    bash 复制代码
    docker image prune -f

扩展:按条件删除

  • 删除特定标签的镜像

    bash 复制代码
    docker rmi $(docker images | grep "pattern" | awk '{print $3}')
  • 删除已退出的容器

    bash 复制代码
    docker rm $(docker ps -q -f status=exited)

执行后,可通过 docker psdocker imagesdocker volume ls 等命令验证清理结果。

相关推荐
网硕互联的小客服11 分钟前
Centos系统如何更改root账户用户名?需要注意什么?
linux·运维·服务器·数据库·安全
学Linux的语莫24 分钟前
prometheus、grafana的docker搭建
docker·容器·prometheus
lisanmengmeng24 分钟前
zentao的prod环境升级(一)
linux·运维·数据库·docker·容器·禅道
wunianor29 分钟前
[高并发服务器]DEBUG日志
linux·运维·服务器·c++
nbsaas-boot36 分钟前
SQL Server 存储过程设计规范(事务与异常处理)
linux·数据库·设计规范
kkoral39 分钟前
单机docker部署的redis sentinel,使用python调用redis,报错
redis·python·docker·sentinel
Jason_zhao_MR2 小时前
米尔RK3506核心板SDK重磅升级,解锁三核A7实时控制新架构
linux·嵌入式硬件·物联网·架构·嵌入式·嵌入式实时数据库
叮咚侠2 小时前
Ubuntu 24.04.3 LTS 中 vdb 的 UUID 永久挂载没有显示的磁盘的操作步骤
linux·运维·ubuntu·挂载磁盘
.小墨迹2 小时前
C++学习之std::move 的用法与优缺点分析
linux·开发语言·c++·学习·算法·ubuntu
风华同学2 小时前
【Linux驱动篇】LED驱动开发实验
linux·驱动开发·ubuntu