Docker Run 转 Compose

即时将 docker run 命令转换为 docker-compose.yml。支持端口映射、卷挂载、环境变量、网络、重启策略等。

100% 浏览器端运行 数据不离开你的设备 免费 · 无需注册
docker run 命令
docker-compose.yml

使用方法

  1. docker run 命令粘贴到左侧面板(或点击示例)。
  2. 点击转换
  3. 在右侧面板查看生成的 docker-compose.yml
  4. 点击复制,将内容保存为项目中的 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 文件中。