社区所有版块导航
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

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

可爱的小Cherry • 5 月前 • 221 次点击  

去年我 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