网站首页 > 博客文章 正文
还在为手动编写 Docker Compose 文件而头疼?这款神器能帮你一键搞定,将现有 Docker 容器信息转换为 docker-compose.yaml 文件,轻松实现容器迁移和管理!
项目直达: coracoo/docker2compose[1]
核心功能,解决你的痛点:
1 智能网络分组,告别手动配置: 自动分析容器间连接(兼容自定义网络/Links),无需手动梳理。 将有关联的容器自动分组,生成独立的 docker-compose.yaml 文件,结构清晰。
2 全参数覆盖,保留你的配置: - 支持提取镜像、端口、卷、环境变量、设备挂载等 23+ 配置项,不遗漏任何细节。 - 保留特权模式、cap_add 等高级参数,满足你的个性化需求。 - 智能过滤极空间 NAS 兼容性差的参数(如性能限制),避免潜在问题。
使用姿势,简单易上手:
启用前确保系统安装了docker和docker compose。
方式一:Docker 部署
docker run -itd --name d2c \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /宿主机存储路径:/app/compose \
-e NAS=debian \ # 可选,默认debian,详见下文说明
-e CRON="0 */12 * * *" \ # 可选,默认每天0点起,每天12小时执行一次,详见下文说明
-e NETWORK=true \ # 可选,默认true,详见下文说明
-e TZ=Asia/Shanghai \ # 可选,默认Asia/Shanghai
# 阿里云镜像源,国内选择
crpi-xg6dfmt5h2etc7hg.cn-hangzhou.personal.cr.aliyuncs.com/cherry4nas/d2c:latest
# github镜像源
# ghcr.io/coracoo/d2c:latest
重要提示: 请务必将 /宿主机存储路径 替换为你实际的目录,例如 /opt/d2c-output,用于存放生成的 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
- /opt/d2c-output:/app/compose
environment:
- NAS=debian
- CRON="0 */12 * * *"
- NETWORK=true
- TZ=Asia/Shanghai
转换完成文件输出至/opt/d2c-output目录
环境变量说明:
- NAS: 指定NAS系统类型 debian: 默认值,生成完整配置 zos: 极空间系统,不生成command和entrypoint配置
其他变量请查看项目说明,这里就不详细说明了
生成文件说明
文件类型 | 命名规则 |
独立容器 | {容器名}.yaml |
容器组 | {首容器名}-group.yaml |
所有文件保存在compose/子目录
重新部署容器
接下来,我们就要将容器以compose的方式重新部署一遍, 在部署之前,我们需要确保所有的存量docker都是停止状态。为了确保原先容器的安全,强烈建议大家修改一下容器的名称 container_name 这里,确保和原先的容器不冲突。
选择刚才导出的yaml文件导入。测试一下容器有没有问题,没问题,那么就可以把原来单独部署的容器删掉,改用compose部署的容器了。
如果要修改容器信息,也很简单。来到具体compose项目页面,修改代码、保存、重新构建一步到位。
使用注意事项:
- Docker 命令行权限: 确保你拥有 Docker 命令行执行权限,以便工具能够访问 Docker 守护进程。
- 默认网络: 默认网络会被标记为 external: true,你需要手动预先创建这些网络。
- 人工校对: 在个别复杂场景下,建议人工校对生成的 YAML 文件,确保配置的准确性。
还在等什么?立即体验这款神器,让容器迁移变得轻松愉快!
引用链接
[1]coracoo/docker2compose: https://github.com/coracoo/docker2compose
猜你喜欢
- 2025-05-22 Docker搭建MySQL与Redis集群教程
- 2025-05-22 Docker新手福音!这个开源控制面板让你更快上手Docker
- 2025-05-22 数字管家登场:利用Docker快速部署你的HomeBox家庭库存系统
- 2025-05-22 docker-compose备份数据库,在crontab定时任务中不生效解决方法
- 2025-05-22 容器云生产实践第一步:ELK Stack
- 2025-05-22 docker-compose快速部署elasticsearch-8.x集群+kibana
- 2025-05-22 dify 1.40
- 2025-05-22 Windows 上 Docker 镜像与容器更新全攻略
- 2025-05-22 docker从入门到实战系列6-docker-compose容器编排
- 2025-05-22 Docker与Docker Compose部署微服务对比
你 发表评论:
欢迎- 377℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 373℃用AI Agent治理微服务的复杂性问题|QCon
- 364℃初次使用IntelliJ IDEA新建Maven项目
- 357℃Maven技术方案最全手册(mavena)
- 353℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 353℃IT全明星|IntelliJ IDEA学习笔记(四、idea中怎么创建maven项目)
- 352℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 351℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)