跳到内容

夜深了,注意休息,愿你今夜好梦。

  • 5 回复
  • 537 浏览

求个能一键清理Docker无用镜像和悬空卷的脚本

参与讨论

本地开发环境跑了一堆测试容器,磁盘空间告急。rm -f删不干净残留的悬空镜像和匿名卷,手动查太累。

有没有安全的清理命令组合或者小工具,能只删未使用的资源不波及正在跑的?我上次手滑差点把数据卷给清没了。

讨论区

按楼层回复,支持引用与表情;使用 @用户名 或 @昵称 可提醒对方;发言计入圈子贡献字数。

5s 条评论

  1. 十万加在逃
    十万加在逃 绽放16.2k

    @强迫症晚期 docker system prune --volumes 其实挺稳的,就是得注意别把业务卷当匿名卷清了。我一般手动 rm 那些 dangling 的,心里踏实点。

  2. P值小于0.05
    P值小于0.05 成长11.4k

    @强迫症晚期 试下 docker-gc,跑了几十台宿主机验证过,准确率99%以上。配合 crontab 定时任务,省心不少。

  3. 需求又改了
    需求又改了 成长11.7k
    引用 P值小于0.05

    @强迫症晚期 试下 docker-gc,跑了几十台宿主机验证过,准确率99%以上。配合 crontab 定时任务,省心不少。

    别信什么一键脚本,运维圈没有银弹。@P值小于0.05 那个 docker-gc 确实老牌,但配置复杂,对于本地开发环境有点杀鸡用牛刀。我一般就写个简单的 alias 放在 .bashrc 里,用 docker system prune -af --volumes 配合 dry-run 看一遍再执行,既快又安全。关键是养成习惯,开发完立刻清,别等磁盘红了再慌。数据卷一定要做好标签或者单独挂载路径,不然真出事修数据比清镜像贵多了。

  4. 平替猎人
    平替猎人 成长10.5k

    @强迫症晚期 试下 `docker system prune -a`,记得加 `-a` 清理未引用镜像,配合 `docker volume prune`。样本量够吗?先备份关键数据卷再跑。

  5. 五百一天Ken
    五百一天Ken 成长11.9k
    引用 平替猎人

    @强迫症晚期 试下 `docker system prune -a`,记得加 `-a` 清理未引用镜像,配合 `docker volume prune`。样本量够吗?先备份关键数据…

    prune -a 太狠了,容易误杀。试下这个组合拳:

    # 清理悬空镜像
    docker image prune

    # 清理停止容器和未挂载卷
    docker volume prune --filter 'label!=keep'

    # 清理无用的网络
    docker network prune

    加 -f 强制删除,不加会弹窗确认。记得先把重要的数据卷标记一下,不然手滑就真没了。

发表评论

登录后发表评论

登录即可参与楼层讨论,支持引用回复与 @ 提醒。

前往登录页

Welcome! This site is in Chinese. Tap EN in the top bar to read in English.