NAS本身的功能虽然不算特别丰富,但在日常使用中,无论是文件存储还是影音娱乐,都已经足够满足大多数用户的需求了。而Docker的出现,则为NAS打开了更多可能性的大门,也让不少用户愿意深入研究各种有趣的项目。
在Docker部署方面,熊猫一直坚持一个原则:能用 Compose 就用 Compose。这是因为很多项目都需要依赖数据库、运行环境等组件,使用 Compose 可以很方便地把多个镜像组合成一个完整的应用栈。而且,即使项目出了问题,也可以通过 Compose 文件快速恢复,非常有利于长期维护和备份。
今天要给大家介绍的是一款叫做 docker2compose 的工具,它可以根据已有的 Docker 容器自动生成对应的 Compose 文件。这个工具不仅能读取容器的网络配置和各种参数设置,还能把这些信息整理成结构清晰的 Compose 格式,最后导出到本地保存。无论是用来查看容器的详细配置信息,还是当作一个容器备份的小帮手,docker2compose 都非常实用。
因为刚好熊猫想将绿联中部署的项目进行备份,所以这里直接用绿联作为演示机,不过该项目理论上是支持所有NAS的。这里用到的是绿联的DXP6800 Pro,虽说本身就支持compose了,且绿联会自动保存compose文件到本地,但无意中熊猫删了一些文件,所以导致部分项目的compose没有了。
部署自然直接用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之间的容器迁移或者容器配置分享也不错。
以上便是本次分享的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!