背景
笔者之前有一次不小心删除了原始的 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 配置文件的便捷方法。当丢失原始的配置文件时,这个工具能够帮助我们快速恢复服务环境,避免重复配置带来的工作量。