当前位置: 首页 > web >正文

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

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


1. 删除所有 Docker 容器

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

2. 删除所有 Docker 镜像

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

3. 清理未使用的 Docker 资源

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

4. 删除所有 Docker 卷

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

5. 删除所有 Docker 网络

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

6. 一键清理所有 Docker 资源

# 组合命令:删除容器、镜像、卷、网络等
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. 仅清理未使用的资源:如果只想清理悬空镜像(未被任何容器引用的镜像),使用:
    docker image prune -f
    

扩展:按条件删除

  • 删除特定标签的镜像
    docker rmi $(docker images | grep "pattern" | awk '{print $3}')
    
  • 删除已退出的容器
    docker rm $(docker ps -q -f status=exited)
    

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

http://www.xdnf.cn/news/7463.html

相关文章:

  • Python海龟绘图-斗地主
  • redis在spring boot中异常退出
  • 【C语言】贪吃蛇小游戏
  • Python 实例传递的艺术:四大方法解析与最佳实践
  • 每日算法 -【Swift 算法】不含重复字符的最长子串:暴力解法 vs 滑动窗口
  • Python 实现图片浏览和选择工具
  • 出海跨境电商内容管理难?Baklib 助力打造多语言知识库与智能素材中心
  • Stable Diffusion 学习笔记02
  • 【Nextcloud】使用 LNMP 架构搭建私有云存储:Nextcloud 实战指南
  • TYUT-企业级开发教程-第5章
  • 【C++]string模拟实现
  • laravel 通过Validator::make验证后,如何拿到验证后的值
  • nmcli connection reload
  • C++ qt基类的成员变量,在派生类中需要具有不同的数据类型的解决方法
  • 【NLP】34. 数据专题:如何打造高质量训练数据集
  • 【深度学习基础/面试高频问题】常见的归一化
  • TS01S:单通道差分灵敏度校准电容触摸传感器芯片
  • linux系统双击EXE运行,在统信UOS上无缝运行EXE!统信Windows应用兼容引擎V3来了
  • 模块与包的导入
  • 国产SF2507交换机调试记录
  • 【git进阶】git rebase(变基)
  • 基于RT-Thread的STM32F4开发第五讲——软件模拟I2C
  • 研读论文《Attention Is All You Need》(7)
  • linux安装conda环境-ubuntu
  • linux——mysql故障排查与生产环境优化
  • CSS实现过多的文本进行省略号显示
  • 5:OpenCV—图像亮度、对比度变换
  • MySQL替换瀚高数据库报错: TO_DAYS()不存在(APP)
  • Playwright 多语言一体化——Python_Java_.NET 全栈采集实战
  • oracle序列自增问题