将容器的配置导出docker-compose.yml
现象1
有时候,我们需要想知道docker容器的运行参数、环境变量等配置,以便容器以后被删掉之后,可以重新运行起来。特别是在测试环境,有些容器可能就是一个docker run
就运行起来了。或者随便找一个目录丢了一个docker-compose.yml运行起来,但是下次再回来找就找不到docker-compose.yml的路径了。这时候进行对程序做升级、参数变更等操作,会非常麻烦,需要一一去对环境变量和运行参数
现象2
某些特殊情况可能导致 docker-compose.yml 被删掉且找不回了,但是运行中的 container 还没有删掉,那么有没有可能通过 container 反向生成配置文件呢?
解决方法
1 用dctc
dctc是一个可以根据docker容器的信息生成docker-compose.yml配置的工具。这样无论是用docker run
跑起来的,还是忘了docker-compose.yml的位置了,只要再用dctc来生成一个docker-compose.yml配置即可对其做变更后,再进行部署。
dctc的使用非常简单,dctc 后加容器id或者名字即可,默认的,它会把docker-compose的配置输出到标准输出,可以对输出运行重定向或者用 -o参数指定输出的路径。
工具地址:
tenfyzhong/dctcgithub.com
原文链接:https://blog.csdn.net/weixin_29623481/article/details/112578347
2 用autocompose
直接安装
pip install pyaml
pip install docker
python autocompose.py <container-name-or-id>
docker方式 portainer-admin为容器名或容器id
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock red5d/docker-autocompose portainer-admin