剪藏#剪藏#可爱的小Cherry

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

2025 年 5 月 3 日1 分钟
分享Twitter / XTelegram微博
我写了个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

Notion image

一、为什么推荐使用compose?

docker compose 是 docker 的一个插件,用于定义、管理、运维多个docker容器。

Notion image

相比于单独使用docker,使用compose有如下三个优势:

1️⃣管理更简单:所有容器的定义、运行都可以通过文本记录在册,通过修改yml配置文件可以轻松的更改和管理这些容器。

2️⃣运维更方便:所有容器的配置,例如卷、镜像、网络都在yml配置文件里,无论何时,我都可以在yml文件和数据卷的合作下,轻松重启我的docker容器而不用担心容器丢失。

3️⃣容器更安全:compose的容器间访问,默认是互联互通,通过hostname的使用,可以让容器不暴露端口的情况下被同个项目下的容器所访问,大大提高了安全性。

二、极空间compose详解

新版本的docker,增加了一个compose的标签页,在这里我们可以看到所有的compose项目。包括项目名称、状态、包含容器等信息。

Notion image

想要创建一个compose项目,我们必须获取docker-compose.yaml这个文件,常见的docker-compose.yaml获取方式有:1️⃣项目官方提供2️⃣任意网友分享3️⃣自行转换

这里主要来说一下第3️⃣种自行转换,登录网站www.composerize.com,把我们常用的docker cli填入,网页就会自动生成一个yaml格式的文件。

Notion image

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

Notion image

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

Notion image

三、docker一键导出compose

1、部署d2c容器

下面,我们实操创建一个我写的docker 2 compose这个容器工具,将极空间内存量的docker转换为docker-compose.yaml,然后重新导入,实现docker的统一管理。

🔻docker-compose.yaml

JAVASCRIPT
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栏中。

Notion image

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

Notion image

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

Notion image

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

Notion image

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

Notion image

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

Notion image

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

Notion image

2、重新部署容器

接下来,我们就要将容器以compose的方式重新部署一遍,在部署之前,我们需要确保所有的存量docker都是停止状态。

打开新建项目——导入——从本地导入

Notion image

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

Notion image

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

Notion image

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

Notion image

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

Notion image

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

Notion image

总结

对于本次极空间上架的全新compose功能,大家还喜欢吗?如果还在犹豫是否切换到compose,但是被迁移所困扰的朋友,可以尝试一下我利用 AI 开发的这款小工具,帮大家实现 0 烦恼快速迁移。

截至目前,几乎所有的NAS系统都支持了docker compose的使用,这意味着未来各大主流UP,将compose作为容器部署的方法,也会越来越普及。所以趁着现在,赶紧上手试用一下吧!

🔻1️⃣群 2000人,还剩60个坑位,满了的话,请进2️⃣群。

Notion image

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

Notion image

原文地址: https://mp.weixin.qq.com/s?__biz=MzA4NzMyNzU5Mg==&mid=2453068923&idx=1&sn=70c2eb16b75dc2a07a6828859427c682&chksm=86a2e78c0cf010c8c69e02d6dc965d7ca5753c88231493746464add851a5b964afd88a8f2a8f&mpshare=1&scene=1&srcid=0503S0IdFR11z4B1v6FLrImd&sharer_shareinfo=faf8f652af9286b78747fe593db93b1c&sharer_shareinfo_first=faf8f652af9286b78747fe593db93b1c#rd

相关文章