將容器的配置導出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