当前位置: 首页 > news >正文

【运维】还原 Docker 启动命令的利器:runlike 与 docker-autocompose

🔍 还原 Docker 启动命令的利器:runlike 与 docker-autocompose 实用教程

在日常使用 Docker 时,我们常常通过 docker run 启动容器,但有时候过了一段时间就忘记了当初使用的具体参数(端口、挂载、环境变量等)。此时,如果你想“复刻”一个容器的配置,就必须还原出原始的启动命令或 Compose 配置文件

本文将介绍两个非常实用的开源工具:

  • runlike:还原 docker run 命令
  • docker-autocompose:生成 docker-compose.yml

📦 一、为什么需要还原 Docker 启动命令?

场景举例:

  • 运维需要复现生产环境的容器
  • 团队成员忘记了启动命令细节
  • 想将 docker run 迁移为 docker-compose 配置
  • 快速备份当前容器部署状态

虽然可以通过 docker inspect 查看容器配置,但信息太繁杂,不如这两个工具来的高效和直观。


🧰 二、安装 runlike:快速还原 docker run 命令

✅ 安装

使用 pip 安装(建议使用 Python 3):

pip install runlike

或者从源码安装:

git clone https://github.com/lavie/runlike.git
cd runlike
pip install .

✅ 使用示例
docker ps    # 查看容器 ID 或名称
runlike <container_id_or_name>

🧪 示例输出:

docker run \--name=my-nginx \-p 8080:80 \-v /mydata:/usr/share/nginx/html \-e "ENV=production" \nginx:latest

runlike 会尽可能忠实地还原原始参数,包括:

  • 挂载卷(-v)
  • 环境变量(-e)
  • 网络参数(–network)
  • 启动命令(CMD)
  • 重启策略(–restart)
  • 容器名称、镜像名称等

🛠 三、安装 docker-autocompose:还原 docker-compose.yml

有些服务启动参数非常复杂,适合用 docker-compose.yml 来管理。这时候你可以使用 docker-autocompose

✅ 安装
pip install docker-autocompose

或者源码安装:

git clone https://github.com/Red5d/docker-autocompose.git
cd docker-autocompose
pip install .

✅ 使用示例
docker-autocompose <container_id_or_name> > docker-compose.yml

📄 示例输出:

version: '3.3'
services:my-nginx:image: nginx:latestports:- "8080:80"volumes:- /mydata:/usr/share/nginx/htmlenvironment:- ENV=productionrestart: always

输出的 docker-compose.yml 文件可以直接用来部署:

docker compose up -d

🧠 四、runlike 与 docker-autocompose 的对比

功能/工具runlikedocker-autocompose
输出格式docker run 命令docker-compose.yml 文件
使用复杂度简单稍高(需要理解 Compose 语法)
是否支持多容器❌(单容器)✅(可以用多个容器分别生成合并)
是否可直接部署

🎯 五、最佳实践建议

  • 本地调试时用 docker run + runlike
  • 多服务部署时用 docker-compose + docker-autocompose
  • 容器运行后,立即用这两个工具备份配置,避免遗忘

🧩 六、补充小技巧

查看所有容器及其完整命令:
docker ps -a --no-trunc
容器详细参数:
docker inspect <container_id_or_name>
结合 bash 还原多个容器:
for c in $(docker ps -q); dorunlike $c
done

🏁 总结

无论你是开发人员还是运维工程师,掌握 runlikedocker-autocompose 都能极大提高你对 Docker 容器的可控性和复现能力。这两个工具简单高效,非常适合日常备份、迁移和自动化部署使用。

别再因为忘了当初是怎么跑起来的而头疼,赶快试试它们吧!


💬 如果你觉得这篇文章对你有帮助,欢迎点赞、收藏、评论交流!

相关文章:

  • [密码学实战]SDF之对称运算类函数(四)
  • DeepSeek 本地化部署与 WebUI 配置的方法
  • 应用服务器-IIS
  • 深度学习---pytorch搭建深度学习模型(附带图片五分类实例)
  • 《算法笔记》10.5小节——图算法专题->最小生成树 问题 E: Jungle Roads
  • Vue高级特性实战:自定义指令、插槽与路由全解析
  • [论文阅读]Adversarial Semantic Collisions
  • “兴火·燎原”总冠军诞生,云宏信息《金融高算力轻量云平台》登顶
  • 第十六届蓝桥杯 2025 C/C++B组第一轮省赛 全部题解(未完结)
  • 【软考-高级】【信息系统项目管理师】【论文基础】沟通管理过程输入输出及工具技术的使用方法
  • 语音合成之十韵律之美:TTS如何模拟语音的节奏和语调
  • 第十六届蓝桥杯 C/C++ B组 题解
  • 沙箱逃逸(Python沙盒逃逸深度解析)
  • 7.进程概念(三)
  • 01_微服务常见问题
  • k8s术语pod
  • 解决vue3 路由query传参刷新后数据丢失的问题
  • Webug4.0通关笔记04- 第6关宽字节注入
  • FPGA中级项目7———TFT显示与驱动
  • gitmodule怎么维护
  • 李铁案二审今日宣判
  • 王毅:为改革完善全球治理作出金砖贡献
  • 自称“最美”通缉犯出狱当主播?央广网:三观怎能跟着“五官”跑
  • 老凤祥一季度净利减少两成,去年珠宝首饰营收下滑19%
  • 走访中广核风电基地:701台风机如何乘风化电,点亮3000万人绿色生活
  • 特朗普说克里米亚将留在俄罗斯,泽连斯基:绝不承认