跳到主要内容
← 返回

docker run 转 compose - 在线命令转换器

代码
本地运行 · 不上传

把 docker run 命令一键转换成 docker-compose.yml:自动映射端口、卷、环境变量、重启策略、网络等常用参数,支持多行续行与 --flag=value 写法,未映射参数以警告提示。纯浏览器本地转换,命令不外传。

结果有帮助吗?

本地工具可在 DevTools → Network 搜索输入内容,通常不会出现在请求中。

使用指南

docker run 一长串参数能跑起来,但重启动、迁移、编排就难维护——docker compose 把「怎么跑」固化成 YAML。本工具把 docker run 命令翻译成等价的 compose 配置:端口、环境变量、卷、重启策略等映射到对应字段,纯文本解析、本地完成,粘贴的命令不上传。转换后仍需人工核对镜像标签、卷路径与启动依赖。

1. 转换一个 run 命令

参数写法不统一时(短横与长选项混用),以转换结果为准再对照原命令。缺省项不会被「猜」出来。

  1. 把完整的 docker run 命令粘进输入框(含 -d、-p、-v、-e、--name、--restart 等)。
  2. 点击转换,右侧生成等价的 compose YAML。
  3. 复制结果存为 docker-compose.yml,用 docker compose up -d 验证一次。

2. 转换后必做的三处人工核对

run 命令的参数只活在敲它的那一次会话里;compose 进版本库才可评审与回滚。

  • 镜像与标签:漏了 tag 会默认 latest,行为可能变。
  • 卷路径是宿主机路径:换机器要改绝对路径。
  • 依赖顺序:需用 depends_on 表达,工具不会替你猜。
  • 网络与密钥:敏感环境变量不要提交到公开仓库。

3. 为什么值得迁到 compose

机器重启后要么写进 shell 历史、要么靠人肉记忆。compose 文件可复制到任何机器,团队里「在我机器上能跑」的容器版,十有八九是没把 run 固化成 compose。短期脚本可以继续用 run;长期服务请尽快固化。

4. 常见映射边界

端口映射到 ports,环境变量到 environment,卷到 volumes,重启策略到 restart。部分冷门 flag 可能无法完整表达——转换后对照原命令,缺了就手写补上。

5. 和相邻工具

本页只做单条 run 的翻译起点,不是完整的编排设计器。

  • 美化 YAML:相关格式化工具。
  • 密钥勿进仓库:用 env 文件或密钥管理。
  • 多服务编排:在 compose 里拆服务并写 depends_on。

6. 隐私与安全

命令可能含密码或 token,粘贴后注意清剪贴板与屏幕分享。本地解析不上传,但生成文件若提交 Git 仍会泄漏。处理含个人信息或密钥的内容时,即使计算在本地完成,也要留意屏幕分享、录屏与下载文件的二次传播路径。

常见问题

覆盖日常 90% 场景:-p 端口、-v 卷、-e 环境变量、--env-file、--name、--restart、--network、-h、-u、-w、--entrypoint、-m 内存、--cpus、--privileged、--mount(bind/volume 类型)以及镜像后的容器命令。未覆盖的参数不会让转换报错,会列在警告区提醒人工确认。

裸写 -e DEBUG(不带 = 值)表示透传宿主机环境变量,compose 文件无法表达这种引用。改写成 -e DEBUG=value 的完整形式后再转换。

至少三处:镜像漏写 tag 会默认 latest,行为可能变;卷路径是宿主机绝对路径,换机器要改;服务间依赖要用 depends_on 表达,工具不会替你猜。敏感环境变量也别随 compose 文件提交到公开仓库。

存为 docker-compose.yml 后运行 docker compose up -d 验证一次;现代 docker compose(v2)不需要 version 字段,本工具生成的就是这个格式。run 的参数只活在敲它的那次会话里,compose 文件进版本库才可评审、可回滚、可复制到任何机器。

不会。整条命令的翻译与 YAML 生成全部在你的浏览器内完成,页面不发出网络请求;含密码、内网地址的命令可以直接粘贴,但生成文件提交 Git 前记得清理密钥。

相关工具

相关文章