本文最后更新于 2024-06-28,文章内容可能已经过时。

前言

大家好,这里是可爱的Cherry。

前几天发布了一篇关于如何使用docker compose的教程,有帮助到大家吗?

文章最后提到了关于如何将现有的docker容器转换为compose文件的功能,也就是今天要介绍的内容:Docker-AutoCompose。

不过,该项目输出的内容基本包含了容器所有的元素,甚至还有label,所以建议将结果进行一定的删改及实现最佳保存效果。

项目地址:https://github.com/Red5d/docker-autocompose

项目特性

一行命令,将现有docker容器生成为docker-compose.yaml定义。

系统部署

一、docker run代码

🔻输出指定容器的yml文档,多个容器间用空格间隔

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose  ...

🔻输出所有容器,并保存为文档。{path}为你自己定义的路径

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose $(docker ps -aq) >{path}/compose.yml

二、使用群晖任务计划部署

🔻将上述docker run 代码复制到任务计划中执行即可。记住,每一行代码最后都要加上反斜杠“\”
任务计划.png


系统使用

🔻在获取到了compose.yml后,大致格式如下,网络和卷部分可以删除。
image.png
🔻在看容器部分,只需要保留volumes、network、environment、image就可以,红框内的部分都可以删除。特殊一点的比如需要高级权限的,保留privileged即可。
image.png
🔻如果使用macvlan的,则需要保留macvlan的相关配置
image.png