Py学习  »  docker

NAS 强迫症最爱,docker 转 compose 2.0 再升级!宝子们快来试试看~

可爱的小Cherry • 2 月前 • 131 次点击  

去年我 Vibe Coding 的这个项目最近也迎来了大升级,除了全面修改了 bug 之外,还重构了页面风格,增加了一些额外的功能。

image.png

下一步会加入 AI 能力,让 AI 帮助整理导出的 yaml 文件~

docker2compose 是一款用于读取 NAS 中存量 Docker 容器信息,自动生成对应的 docker-compose.yaml 文件的工具。

它会根据容器之间的网络关系(自定义网络或link连接)将相关容器分组,并为每组容器生成一个独立的docker-compose.yaml文件。

QQ_1772269100286.png

本次部署以威联通 Qu605-N150-16G 为例。以前使用威联通使用多了,都喜欢 SSH 登录来跑 docker run 的脚本。

但是随着 compose 应用来越来越成熟,统一管理和维护的途径更方便。所以我也开始将存量 docker 转换为 compose.yaml 文件。

之前在网上找过很多类似的项目,要么就是 cli 操作的不够直观,要么就是导出的内容太杂太乱,所以我就自己 vibe 了一个。

部署之前,大家可以先在威联通的 Container Station 的存储库里,增加 docker 的加速镜像。比较常用的就是 1ms 镜像,按照我下面配置即可。

QQ_1772267745124.png

yaml 文件如下所示。因为威联通内置了 5000 的 webui 端口,所以我们需要将映射端口更改为 15000。

然后就是本项目的 docker client 比较新,所以我们还需要在环境变量里增加一个 docker 版本指定的参数,避免 docker api 版本不一致导致的项目无法使用。

services:
  d2c:
    image: coracoo/docker2compose:latest
    container_name: docker2compose
    ports:
      - "15000:5000"  # Web UI端口
    environment:
      - TZ=Asia/Shanghai  # 可选,时区设置
      - DOCKER_API_VERSION=1.41 # docker版本比较老的系统,加这个参数控制 docker api 版本
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /share/Container/d2c/compose:/app/compose
      - /share/Container/d2c/logs:/app/logs
      - /share/Container/d2c/config:/app/config

复制整段代码到威联通 Container Station 的应用程序里,先取名、再复制、再验证,最后部署完成!

QQ_1772267950796.png

成功之后,我们可以在容器页面找到这个项目,点击进入详情页,在左侧有一个端口转发。这里有容器的 webui 地址,直接复制到浏览器访问。

QQ_1772268084185.png

最直观的,就是新版本采用了更大胆的风格设计,比上个版本好看一万倍!

其次是增加了鉴权部分,支持管理员账号登录。解决了老版本的安全问题,默认账号密码是 amdin/admin123,登录后尽快右上角修改。

QQ_1772268096560.png

首先来说说系统设置。本次对 networkhealthcheckcap_addcommand entrypoint 等几个通常不使用的节点增加了显示控制,大家可以关掉这些节点,那么生成的 yaml 代码会更简洁。

QQ_1772268249982.png

其次在环境变量里有很多默认的包版本、插件版本等信息,我也增加了一个环境变量的关键词过滤功能,可以手动维护一些你平时遇到的,需要过滤的变量。

当然,laberl 里我也去掉了最恶心的系统默认标签,现在会更加简洁。

QQ_1772268429175.png

定时任务之前有点 BUG,经常会失效。这次统一了定时的方法,并且增加了自动备份的频率,默认选择每日更新最合适。

QQ_1772268444608.png

初次使用,需要在配置完自动备份频率以后,在定时任务列表里启动任务。每一次系统执行自动备份,都会将日志记录下来,你可以清晰的看到它是否有遗漏,方便管理。

QQ_1772268505592.png

详情页面里,左侧是目前的容器列表,按照名字排序;中间是备份的文件目录,按照备份日期归并,支持查看、删除;右侧是具体的 compose.yaml 配置,点击文件后可查看。

QQ_1772268590887.png

对于懒人来说,可以使用顶部的全量备份。如果容器不多的话,可以很方便的将现在所有的项目导出,然后你手动去分类、处理就行了。

QQ_1772268700734.png

如果原来分散的多个项目,现在需要合并到一个 compose 下面的。在左侧勾选这几个容器,然后在右侧区域命名,并且点击合并,就会生成一个整体的 yaml 文件,然后根据你自己的需求进行删改后点击保存就 ok 了。

QQ_1772268782370.png

保存的记录放在根目录文件夹下。

QQ_1772268831988.png

怎么样?是不是一个虽然简单,但是很不错的项目呢

下一步呢,我觉得是增加 AI 的 rag 和 自动过滤功能?让 yaml 文档的检索以及非必要参数过滤更加智能,让懒人更幸福~

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