Docker Run 转 Compose
即时将 docker run 命令转换为 docker-compose.yml。支持端口映射、卷挂载、环境变量、网络、重启策略等。
使用方法
- 将 docker run 命令粘贴到左侧面板(或点击示例)。
- 点击转换。
- 在右侧面板查看生成的 docker-compose.yml。
- 点击复制,将内容保存为项目中的
docker-compose.yml。
支持的参数
—name NAME— 服务名称-p / —publish HOST:CONTAINER— 端口映射-v / —volume HOST:CONTAINER[:mode]— 卷挂载-e / —env KEY=VALUE— 环境变量—network NETWORK— 网络—restart POLICY— 重启策略(no、always、unless-stopped、on-failure)—cap-add CAP— 添加 Linux 能力—memory MEM— 内存限制(如 512m、1g)—cpus N— CPU 限制
常见使用场景
- 迁移:将一次性 docker run 命令转换为可复现的 compose 配置。
- 文档化:将 README 或文档中的 run 命令转换为 compose 格式供团队使用。
- 多服务部署:分别生成各服务块,合并为完整的 compose 文件。
- CI/CD:用声明式 compose 文件替代脆弱的 docker run shell 脚本。
FAQ
支持哪些 docker run 参数?
支持:--name、-p/--publish(端口)、-v/--volume(卷)、-e/--env(环境变量)、--network、--restart、-d(后台运行)、--cap-add、--memory、--cpus,以及镜像名和可选命令。
生成的 Compose 文件版本是什么?
生成 version 3.8 格式的 docker-compose.yml,与近期版本的 Docker Compose(旧版 docker-compose CLI 和新版 docker compose 插件)广泛兼容。
服务名称如何确定?
如果 docker run 命令中使用了 --name,则以该值作为服务名。否则,服务名从镜像名称派生:去除 registry 前缀和 tag,将斜杠替换为下划线。
支持多行 docker run 命令吗?
支持。粘贴使用反斜杠换行的命令,转换器会正确处理。
不支持的参数怎么处理?
不支持的参数会被静默忽略。转换器专注于最常用的参数。--security-opt 或 --device 等高级选项需要手动添加到生成的 compose 文件中。