NAS神器!一键转换docker为compose文件,小白也能用!极空间部署
大家好,这里是Cherry,喜爱折腾、玩数码,热衷于分享自己的数码玩耍经验~
前言
极空间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作为容器部署的方法,也会越来越普及。所以趁着现在,赶紧上手试用一下吧!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

可爱的小cherry
校验提示文案
思水忆晶
校验提示文案
神秘消逝
校验提示文案
岁月稠
校验提示文案
ericfwok
校验提示文案
v黑洞a
校验提示文案
爱优V
校验提示文案
海绵菌
校验提示文案
卖火柴的粉刷匠
校验提示文案
clock88731
校验提示文案
丽水情深
校验提示文案
small_potato
校验提示文案
碧叶漫语
校验提示文案
值友8459030915
校验提示文案
SEBO120YL
校验提示文案
南南东
校验提示文案
SuahSO
校验提示文案
中号硬核玩家
校验提示文案
jensfrank
校验提示文案
YeSee
校验提示文案
YeSee
校验提示文案
SuahSO
校验提示文案
阿努比斯
校验提示文案
南南东
校验提示文案
SEBO120YL
校验提示文案
jensfrank
校验提示文案
值友8459030915
校验提示文案
碧叶漫语
校验提示文案
small_potato
校验提示文案
丽水情深
校验提示文案
KINGYU
校验提示文案
clock88731
校验提示文案
中号硬核玩家
校验提示文案
卖火柴的粉刷匠
校验提示文案
海绵菌
校验提示文案
爱优V
校验提示文案
v黑洞a
校验提示文案
ericfwok
校验提示文案
可爱的小cherry
校验提示文案
岁月稠
校验提示文案