背景

笔者之前有一次不小心删除了原始的 docker-compose.yml 文件,不过正在运行的 Docker 容器还在,找了许久,发现一个方法可以从这些容器中生成一个等效的 Docker Compose 配置文件。本文将介绍使用 autocompose 工具从正在运行的容器中反向生成 docker-compose.yml 文件。

安装所需工具:

首先,确保你已经安装了 docker-autocompose 工具,以及相关的 Python 包。

安装 docker-autocompose

docker pull ghcr.io/red5d/docker-autocompose:latest

生成 Docker Compose 文件

使用以下命令,将运行中的容器反向生成 Docker Compose 配置文件。替换 <container-name-or-id> 为你要导出的容器的名字或 ID。

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose <container-name-or-id>

手动编辑和调整:

生成的 docker-compose.yml 文件可能包含了很多所有细节,特别是容器内部的数据卷、环境变量等。你可能需要进一步手动编辑和调整生成的文件,比如进行一些删减。检查容器的端口映射、网络设置、卷挂载等配置。

启动服务:

保存并根据生成的 docker-compose.yml 文件重新构建服务。使用以下命令启动服务:

 docker-compose up -d

现在,你已经成功地从运行中的容器生成了一个新的 Docker Compose 配置文件,并成功将服务重新搭建起来。

结论

docker-autocompose 工具提供了从运行中的 Docker 容器中反向生成 Docker Compose 配置文件的便捷方法。当丢失原始的配置文件时,这个工具能够帮助我们快速恢复服务环境,避免重复配置带来的工作量。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐