UFOZoo

Docker Compose转Run命令

将 docker-compose.yml 转换为 docker run 命令。支持端口、卷、环境变量、重启策略。浏览器本地处理,数据不上传。

功能特性

  • 即时转换 —— 粘贴 docker-compose.yml,实时生成 docker run 命令
  • 支持所有常用配置:ports、volumes、environment、restart、network_mode、container_name
  • 处理卷挂载模式 —— 绑定挂载、命名卷、只读(:ro)和读写
  • 支持环境变量的列表和映射两种格式,统一转换为 -e 标志
  • 保留重启策略 —— always、unless-stopped、on-failure、no
  • 生成整洁的 docker run 命令,标志顺序规范,可直接复制执行
  • 多服务 compose 文件 —— 每个服务生成一条独立的 docker run 命令
  • 默认添加 -d 标志,容器以后台模式运行
  • 一键复制所有命令到剪贴板,或下载为 .sh 脚本文件
  • 纯浏览器本地处理,compose 文件绝不上传到服务器
  • 支持 compose v1、v2 和 v3 格式语法
  • 状态栏显示检测到的服务数量和总命令长度

使用方法

  1. 1在输入区域粘贴 docker-compose.yml 内容 —— docker run 命令即时生成
  2. 2工具检测所有服务,为每个服务生成一条独立的 docker run 命令
  3. 3点击复制按钮将所有生成的命令复制到剪贴板
  4. 4使用保存按钮下载为 .sh shell 脚本文件,方便直接执行
  5. 5使用清除按钮重置输入和输出,开始新的转换
  6. 6点击输入框下方的示例按钮,查看常见转换场景
  7. 7compose 文件中的命名卷会提示 —— 可能需要先用 docker volume create 创建
  8. 8工具默认添加 -d 标志,容器以后台模式运行
  9. 9如果 compose 文件使用 depends_on,请检查原文件并按依赖顺序运行命令

常见问题

什么是 docker compose 转 docker run 转换?

它将 docker-compose.yml 中的服务定义转换为独立的 docker run CLI 命令。compose 文件中的每个服务都会生成一条对应的 docker run 命令,所有选项(端口、卷、环境变量等)都会映射到相应的 CLI 标志。适用于需要在没有 compose 环境中运行单个服务、调试特定容器或在编排工具间迁移的场景。

支持哪些 compose 选项?

工具支持所有常用选项:image、container_name、ports、volumes(绑定挂载和命名卷,含 :ro/:rw 模式)、environment(列表和映射两种格式)、restart 策略(always、unless-stopped、on-failure、no)、network_mode(host、bridge、none)、command、working_dir 和 user。

命名卷怎么处理?

命名卷(如 pgdata:/var/lib/postgresql/data)会转换为 -v pgdata:/var/lib/postgresql/data 标志。工具还会为每个命名卷输出一条 docker volume create 命令,因为 docker run 不会像 docker compose 那样自动创建命名卷。

会自动添加 -d 标志吗?

是的,默认所有生成的命令都包含 -d 标志,让容器以后台模式运行,匹配 docker compose 的典型行为。这符合大多数用户从 compose 转换到 run 命令时的预期。

多个服务怎么处理?

compose 文件中的每个服务都会生成一条独立的 docker run 命令。命令按 compose 文件中的顺序输出。如果 compose 文件使用 depends_on,你应该按依赖顺序运行命令(例如,先启动数据库再启动应用)。

depends_on 怎么处理?

decomposerize 库目前不会在输出中保留 depends_on 信息。你应该手动检查 compose 文件中的 depends_on 指令,并按正确顺序运行命令 —— 例如,先启动数据库再启动连接它的应用。docker compose 自动处理这个顺序,但使用 docker run 时需要手动管理。

支持网络配置吗?

支持。compose 文件中定义的自定义网络会被标注,使用 network_mode: host、bridge 或 none 的服务会转换为 --net 标志。对于自定义桥接网络,你可能需要先用 docker network create 创建。

数据安全吗?

完全安全。所有转换完全在浏览器中使用 JavaScript 完成,compose 文件绝不会发送到任何服务器。工具在页面加载后可离线使用。适合包含密码、API 密钥或内部主机名的敏感配置。

和 docker compose run 有什么区别?

docker compose run 是 compose 的子命令,用于从 compose 文件运行一次性命令。此工具将 compose 文件转换为独立的 docker run 命令,不需要安装 compose CLI。适用于需要在没有 compose 的环境中运行容器,或需要将容器启动嵌入脚本的场景。

支持 compose v2 和 v3 吗?

支持。工具处理 v1(含 version 字段)、v2 和 v3 格式的 compose 文件,也支持不包含 version 字段的现代「通用规范」格式。无论 compose 格式版本如何,转换逻辑都是相同的。

能在手机上使用吗?

可以在移动浏览器上使用。但为了获得最佳体验(尤其是大型 compose 文件),推荐使用桌面浏览器,方便并排查看生成的命令和输入内容。

相关工具