我写了个NAS神器,把存量docker一键转换为compose.yaml !极空间compose可用

大家好,这里是Cherry,喜爱折腾、玩数码,热衷于分享自己的数码玩耍经验~
折腾了数十款NAS和数百个Docker容器项目,关注我,每日获得docker玩法
如果喜欢本文,请下方点击免费的点赞、在看!
🔺玩法汇总:公众号首页,左下角点击教程合集项目均来源互联网,如有侵权,后台私信联系删除
前言
极空间Q1的更新不可谓不惊喜,在数十项更新功能中,我个人最期待和喜欢的就是docker compose的功能了。毕竟作为一个github搬运工,原来的纯docker界面在部署一些复杂项目的时候会特别麻烦,而现在有了docker compose之后,一段代码就可以无脑部署,简单又高效。
今天,借极空间这次更新的东风,我也来讲一讲 compose 和 docker cli的差异,以及为什么我们推荐使用compose。
其次,很多人部署了现有的docker不知道怎么迁移。所以,我写了一个迁移小工具,帮助大家把存量的docker转换为compose模板,方便统一管理。
⭐项目地址:https://github.com/coracoo/docker2compose

一、为什么推荐使用compose?
docker compose 是 docker 的一个插件,用于定义、管理、运维多个docker容器。

相比于单独使用docker,使用compose有如下三个优势:
1️⃣管理更简单:所有容器的定义、运行都可以通过文本记录在册,通过修改yml配置文件可以轻松的更改和管理这些容器。
2️⃣运维更方便:所有容器的配置,例如卷、镜像、网络都在yml配置文件里,无论何时,我都可以在yml文件和数据卷的合作下,轻松重启我的docker容器而不用担心容器丢失。
3️⃣容器更安全:compose的容器间访问,默认是互联互通,通过hostname的使用,可以让容器不暴露端口的情况下被同个项目下的容器所访问,大大提高了安全性。
二、极空间compose详解
新版本的docker,增加了一个compose的标签页,在这里我们可以看到所有的compose项目。包括项目名称、状态、包含容器等信息。

想要创建一个compose项目,我们必须获取docker-compose.yaml这个文件,常见的docker-compose.yaml获取方式有:1️⃣项目官方提供;2️⃣任意网友分享;3️⃣自行转换。
这里主要来说一下第3️⃣种自行转换,登录网站www.composerize.com,把我们常用的docker cli填入,网页就会自动生成一个yaml格式的文件。

将yaml文件填入下方的空白区域后,点击创建就可以完成一键部署。

当然,目前极空间的compose还是有一些小缺陷的,这和极空间一直缺少的容器卷管理有关。一旦我们使用容器卷作为存储路径映射时,系统就会报错无法使用,所以大家要记得将volume切换为bind模式哦~

三、docker一键导出compose
1、部署d2c容器
下面,我们实操创建一个我写的docker 2 compose这个容器工具,将极空间内存量的docker转换为docker-compose.yaml,然后重新导入,实现docker的统一管理。
🔻docker-compose.yaml
services:
d2c:
image: crpi-xg6dfmt5h2etc7hg.cn-hangzhou.personal.cr.aliyuncs.com/cherry4nas/d2c:latest
container_name: d2c
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /【tmp/zfsv3/sata14/XXX/data/docker/d2c/compose】:/app/compose首先把yaml代码复制到创建项目的yaml栏中。

接着,点击上方的查询路径按钮。

新建或者找到一个用来保存yaml文件的路径,等会容器会在这里生成所有存量docker的yaml文件。选好之后,点击右下角的复制路径。

将复制出来的路径,替换红框内的这一段文字。注意,冒号右侧的【/app/compose】不要替换,然后点击创建。

极空间就会自动下载对应的容器镜像了,耐心等待compose部署完成。

之后,容器会自动获取极空间内所有的docker、network信息,并且根据网络组合,生成不同的yaml文件。

在极空间的个人空间里,可以看到导出的yaml文件,每一个都是按照容器名称来导出的,很直观。

2、重新部署容器
接下来,我们就要将容器以compose的方式重新部署一遍,在部署之前,我们需要确保所有的存量docker都是停止状态。
打开新建项目——导入——从本地导入。

选择刚才导出的yaml文件导入。

在新的yaml文件里,除了容器名称、镜像、卷、网络、端口、环境变量等基本参数外,我还将极空间的特权模式、显卡能力、能力也一并添加进来。 性能限制因为目前极空间的compose功能不支持,所以没有加。

⭐重点来了!为了确保原先容器的安全,强烈建议大家在**container_name**这里,修改一下容器的名称,确保和原先的容器不冲突。

然后大家创建几个完成以后,测试一下容器有没有问题,没问题,那么就可以把原来单独部署的容器删掉,改用compose部署的容器了。

如果要修改容器信息,也很简单。来到具体compose项目页面,修改代码、保存、重新构建一步到位。

总结
对于本次极空间上架的全新compose功能,大家还喜欢吗?如果还在犹豫是否切换到compose,但是被迁移所困扰的朋友,可以尝试一下我利用 AI 开发的这款小工具,帮大家实现 0 烦恼快速迁移。
截至目前,几乎所有的NAS系统都支持了docker compose的使用,这意味着未来各大主流UP,将compose作为容器部署的方法,也会越来越普及。所以趁着现在,赶紧上手试用一下吧!
🔻1️⃣群 2000人,还剩60个坑位,满了的话,请进2️⃣群。

🔻2️⃣群 1000人,还剩600坑位
