当前位置: 首页 > 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 容器的可控性和复现能力。这两个工具简单高效,非常适合日常备份、迁移和自动化部署使用。

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


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

http://www.xdnf.cn/news/207577.html

相关文章:

  • 数据结构---单链表的增删查改
  • Uniapp:设置页面下拉刷新
  • 1.1 点云数据获取方式——引言
  • Weka通过10天的内存指标数据计算内存指标动态阈值
  • 判断子序列
  • 问答:C++如何通过自定义实现移动构造函数和移动赋值运算符来实现rust的唯一所有权?
  • AI Agent开源技术栈
  • RabbitMQ 启动报错 “crypto.app“ 的解决方法
  • 项目三 - 任务2:创建笔记本电脑类(一爹多叔)
  • MySQL--数据引擎详解
  • gem5-gpu 安装过程碰到的问题记录 关于使用 Ruby + Garnet
  • Qt/C++开发监控GB28181系统/获取设备信息/设备配置参数/通道信息/设备状态
  • 当 AI 成为 “数字新物种”:人类职业的重构与进化
  • python:sklearn 决策树(Decision Tree)
  • 从 0 到 1:ComfyUI AI 工作流抠图构建全实践
  • Linux[配置vim]
  • 通信设备制造数字化转型中的创新模式与实践探索
  • 首页数据展示
  • 并发设计模式实战系列(9):消息传递(Message Passing)
  • Redis性能优化终极指南:从原理到实战的深度调优策略
  • 超越单体:进入微服务世界与Spring Cloud概述
  • Java Stream流
  • 【Fifty Project - D20】
  • 推荐系统实验指标置信度:p值核心原理与工程应用指南
  • TA学习之路——2.3图形的HLSL常用函数详解
  • 万界星空科技QMS质量管理系统几大核心功能详解
  • 【Linux】第十五章 调度未来任务
  • LeetCode - 02.02.返回倒数第 k 个节点
  • 深挖Java基础之:认识Java(创立空间/先导:Java认识)
  • javascript<——>进阶