社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Docker清道夫?在极空间NAS上部署自动化清理助手『PruneMate』

Stark324 • 7 月前 • 323 次点击  

Docker清道夫?在极空间NAS上部署自动化清理助手『PruneMate』

哈喽小伙伴们好,我是Stark-C~

我想绝大多数的NAS用户都和我一样,没事的时候折腾最多的就是玩玩Docker容器。今天装个新镜像,明天试个新服务,后天又看到别人分享了一个“神器”,忍不住拉下来跑一跑。Docker 给 NAS 带来了无限可能,也让我们这些爱折腾的人找到了新的乐趣。

但折腾久了你就会发现,有很多Docker 并不是我们想要的。怎么办?删除呗~。但是很多小伙伴可能只是顺手停掉了Docker容器,但是Docker容器的镜像、网络、卷,甚至还有缓存都还白白占据着NAS硬盘空间,长期的积累可能会达到几十GB甚至更多。

最近找到了一个新的开源项目『PruneMate』,可以说是专门为 NAS 用户解决 Docker 垃圾资源堆积的问题,堪称“Docker清道夫”。

话不多说,展示!

关于PruneMate

🔺PruneMate是一个基于 Python (Flask)、Docker SDK、APScheduler 和 Gunicorn 构建的开源可视化Docker 镜像和资源清理辅助工具,可以让我们不敲命令也能把 NAS 上的 Docker 环境打理得干干净净。

项目Github主页:https://github.com/0x20Fearless/prunemate

✨PruneMate的核心亮点:

  • 🕐 灵活的清洁计划:支持按日、周或月自动执行,让 NAS 清理真正做到“设好就忘”。
  • 🌍 时区感知:可配置本地时区,确保定时任务在你期望的时间准确运行。
  • 🕒 时间格式可选:支持 12/24 小时制,自由选择你更习惯的显示方式。
  • 🧹 选择性清理:你可以精确指定要清理的内容,包括容器、镜像、网络和卷,避免误删。
  • 🔔 智能通知系统:支持 Gotify 和 ntfy.sh,并可设置为仅在发生实际变更时才推送提醒。
  • 🎨 现代化界面设计:深色主题、流畅动画和响应式布局,让管理体验更舒适。
  • 🔒 安全可控的操作方式:支持手动触发清理,并提供详细日志,确保每一步都透明可追踪。
  • 📊 清理报告一目了然:清楚展示清理了哪些资源,以及释放了多少空间,让你对 NAS 状态心中有数。

PruneMate部署

🔺先在文件管理器的Docker目录新建一个/prunemate的文件夹,然后在该文件夹下再建logs和config两个子文件夹用于相关数据的持久化存储。

🔺接着打开极空间NAS的“Docker”应用,点击【Compose】 > 【新增项目】。

🔺在新增项目页面自定义项目名称,输入以下 Docker Compose 配置信息后点“创建”按钮:

services:
  prunemate:
    image:anoniemerd/prunemate:latest
    ports:
      -"7676:8080"   # 项目Web页面打开端口,冒号前面请勿本地冲突
     volumes:
      -/var/run/docker.sock:/var/run/docker.sock
      -./logs:/var/log    # 映射到logs子文件夹
      -./config:/config    # 映射到config子文件夹
    environment:
      -PRUNEMATE_TZ=Asia/Shanghai
      -PRUNEMATE_TIME_24H=true
    restart:unless-stopped

以上代码看似很复杂,其实需要修改的地方就是我中文注释的地方,其它的均保持默认即可。镜像的拉取需要自行解决网络问题,粘贴到自己的NAS这边之前建议使用AI工具优化一下,以防止格式问题造成的部署失败。

顺便说一下,volumes映射的路径需要在当前界面使用“查询路径”查找到真实路径直接复制粘贴就可以了,个人觉得极空间这里对于新手小白已经是相当友好的操作了。

🔺之后看到容器显示“运行中”,就说明项目已启动。可以使用了。

PruneMate体验

🔺打开方式没什么特别,局域网内直接浏览器输入【IP:端口号】就可以了,或者直接点击极空间自己的“远程访问”也能快速打开。

🔺PruneMate默认是英文界面,并且目前还没有中文语言可选择。

🔺不过我们可以直接启用浏览器的翻译插件直接将整个页面翻译成中文,虽说有些“生硬”,但好在不影响正常使用。

🔺使用起来也是非常的简单,我们先设置好自动清理的时间(支持每日/每周/每月),然后勾选清理的内容(不建议大家勾选未使用的容器),最后点页面下方的保存就可以自动一键清理了。

🔺几秒钟的时间,就给我这边清理出了4.9GB的空间出来。

🔺我这里使用portainer看了下,还真的把我极空间NAS未使用的镜像一次给清理干净了。

🔺包括未使用的网络也是一样。

🔺另外如果说你局域网内不止一台NAS,它还支持通过Docker Socket Proxy代理的方式连接到另一台NAS,总而实现多台设备集中管理。

🔺它还支持Gotify 或 NTFY等方式的智能通知,在执行清理操作之后发出警报。,不过需要提前配置好相关token。

最后

总的来说,PruneMate非常轻松的就搞定了我们折腾NAS过程中, Docker 残留的垃圾文件。我们仅需简单的部署,就能得到一个简洁直观,并且可以自动化的Docker 资源可视化清理工具。虽然目前还没有中文界面,但配合浏览器翻译插件完全不影响使用。对喜欢折腾、又想保持系统干净利落的 NAS 用户来说,今天的这个项目还是值得咱们NAS用户体验的!

目前年终大促正在火热进行中,极空间几乎所有的NAS产品都有专属的优惠,并且还能叠加国补、平台优惠等福利,享受180天换新以及2年质保服务 ,更有抽奖、晒单等活动,喜欢的小伙伴赶快冲吧!

好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,咱们下期再见!谢谢大家~

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/190617