侧边栏壁纸
博主头像
醉山野 博主等级

行动起来,活在当下

  • 累计撰写 18 篇文章
  • 累计创建 15 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

根据容器自动生成Compose,Docker配置自动化

zuishanye
2025-07-14 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

引言

NAS本身的功能虽然不算特别丰富,但在日常使用中,无论是文件存储还是影音娱乐,都已经足够满足大多数用户的需求了。而Docker的出现,则为NAS打开了更多可能性的大门,也让不少用户愿意深入研究各种有趣的项目。

在Docker部署方面,我一直坚持一个原则:「能用 Compose 就用 Compose」。这是因为很多项目都需要依赖数据库、运行环境等组件,使用 Compose 可以很方便地把多个镜像组合成一个完整的应用栈。而且,即使项目出了问题,也可以通过 Compose 文件快速恢复,非常有利于长期维护和备份。

今天要给大家介绍的是一款叫做 docker2compose 的工具,它可以根据已有的 Docker 容器自动生成对应的 Compose 文件。这个工具不仅能读取容器的网络配置和各种参数设置,还能把这些信息整理成结构清晰的 Compose 格式,最后导出到本地保存。无论是用来查看容器的详细配置信息,还是当作一个容器备份的小帮手,docker2compose 都非常实用。

部署

该项目理论上是支持所有NAS的。部署自然直接用compose进行部署了,打开docker compose的项目点击创建,复制代码内容。

services:

  d2c:

    # 阿里云镜像源,国内选择

    image: crpi-xg6dfmt5h2etc7hg.cn-hangzhou.personal.cr.aliyuncs.com/cherry4nas/d2c:latest

    # github镜像源

    # image: ghcr.io/coracoo/d2c:latest

    container_name: d2c

    volumes:

      - /var/run/docker.sock:/var/run/docker.sock:ro

      - /{path}:/app/compose

    environment:

      - NAS=debian

      - CRON="0 */12 * * *"

      - NETWORK=true

      - TZ=Asia/Shanghai

其中,NAS变量可选debian与ZOS,ZOS代指极空间系统,因为权限的原因在选择ZOS时容器的command和entrypoint配置不会被导出;CRON为定时策略,采用标准cron表达式,可自行百度查询怎么设置;而NETWORK则是则是bridge网络配置的显示方式,当为true默认值时,显式配置bridge网络模式,即新创建的compose还是在bridge网络下,为false则隐式配置bridge网络模式,即新创建的compose会遵循compose的逻辑,创建新的网络。

在文件映射中,/app/compose则是我们的compose文件保存路径,将该路径映射到本地即可。

因为该项目没有web界面,启动之后便会自动执行,所以不需要映射端口之类的。确定项目的代理无误之后直接启动就行,这时候转到项目日志中,就能看到信息了。

d2c会先进行容器信息读取,随后对容器的compose进行导出,导出名字会自动更改为容器名,最后在映射的本地文件夹中就能看到我们导出的文件了,文件会根据定制策略自动生成对应的文件夹。

写在最后

一个非常实用的项目,即便是不需要用来进行容器的备份,用来进行NAS之间的容器迁移或者容器配置分享也不错。

以上便是本次分享的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!

0

评论区