Docker Run转Compose配置
将 docker run 命令转换为 docker-compose.yml。支持端口、卷、环境变量、网络参数。浏览器本地处理,数据不上传。
功能特性
- ✓即时转换 —— 粘贴 docker run 命令,实时生成有效的 docker-compose.yml
- ✓支持所有常用参数:-p(端口)、-v(卷)、-e(环境变量)、--name、--restart、--net 等
- ✓支持命名卷、绑定挂载和卷选项(如 :ro 只读挂载)
- ✓映射多种网络模式 —— bridge、host、none 及自定义网络名称
- ✓生成标准 Compose v3 格式,包含 services、ports、volumes、environment 等完整配置
- ✓保留容器命名(container_name),方便识别和管理
- ✓支持单条命令中设置多个环境变量(-e KEY1=VAL1 -e KEY2=VAL2)
- ✓处理镜像标签和摘要 —— nginx:latest、postgres:14、ubuntu@sha256:abc123...
- ✓一键复制到剪贴板,一键下载为 docker-compose.yml 文件
- ✓纯浏览器本地处理,docker 命令绝不上传到服务器
- ✓支持 docker create、docker container run、podman run 等命令前缀
- ✓显示解析后的参数摘要,复制前可验证提取结果
- ✓可选 Compose 版本 —— Latest(通用规范)、v3.x 或 v2.x
- ✓可调 YAML 缩进 —— 2 或 4 空格
- ✓合并到现有 docker-compose.yml —— 粘贴已有文件并追加新服务
使用方法
- 1在输入区域粘贴 docker run 命令 —— docker-compose YAML 输出即时生成
- 2工具自动识别命令前缀:docker run、docker create、docker container run 或 podman run
- 3检查参数摘要面板,确认从命令中提取了哪些选项
- 4点击复制按钮,将生成的 docker-compose.yml 复制到剪贴板
- 5使用保存按钮将输出下载为 docker-compose.yml 文件
- 6使用清除按钮重置输入和输出,开始新的转换
- 7点击输入框下方的示例按钮,查看常见转换场景
- 8支持多行命令 —— 工具能处理反斜杠续行和多余空白
- 9对于多个容器,分别粘贴每个 docker run 命令并手动合并输出
- 10使用工具栏的版本切换选择 Latest、v3.x 或 v2.x Compose 格式
- 11使用缩进切换选择 2 或 4 空格的 YAML 缩进
- 12点击「合并到现有 compose 文件」粘贴已有的 docker-compose.yml 并追加新服务
常见问题
什么是 docker run 转 docker-compose 转换?
∨
它将 docker run CLI 命令转换为 docker-compose.yml 配置文件。不再需要编写冗长的 docker run 命令,而是获得一个结构化的 YAML 文件,定义容器的镜像、端口、卷、环境变量等设置。这使得容器配置更易管理、版本控制和团队共享。
支持哪些 docker run 参数?
∨
工具支持所有常用参数:-d(后台运行)、--name(容器名)、-p/--publish(端口映射)、-v/--volume(卷挂载)、-e/--env(环境变量)、--restart(重启策略)、--net/--network(网络模式)、--rm(自动移除)、--hostname、-w(工作目录)、--entrypoint、-u(用户)、-l(标签)、--add-host、--dns、-m(内存限制)、--cpus 等。
能转换 docker create 命令吗?
∨
可以。工具识别 docker run、docker create、docker container run 和 podman run 作为输入前缀。转换逻辑相同,因为 docker create 和 docker run 共享相同的参数语法。
生成的是 Compose v2 还是 v3 格式?
∨
生成的输出使用 Docker Compose v3+ 格式(通用规范),兼容 Docker Compose v2.x 和 v3.x。输出不包含 version 字段,因为现代 Docker Compose 会自动推断正确版本,这也是官方 Docker 文档推荐的方式。
卷挂载是怎么转换的?
∨
绑定挂载如 -v /host/path:/container/path 会成为 compose 文件中的 volumes 条目。命名卷如 -v mydata:/var/lib/data 会被识别并列在服务 volumes 和顶层 volumes 部分。只读挂载(-v ./data:/app/data:ro)会保留 :ro 标志。
支持带多个参数的命令吗?
∨
完全可以。你可以粘贴包含任意参数组合的单条 docker run 命令——端口、卷、环境变量、网络设置、重启策略、标签等。所有参数都会被提取并映射到对应的 compose 等效项。
不支持的参数会怎么处理?
∨
如果某个参数没有直接的 compose 等效项(如 --privileged 或 --cap-add),工具会在参数摘要中标注出来。你可以手动在 compose 文件中添加 extra_hosts、cap_add 等扩展字段。
数据安全吗?
∨
完全安全。所有转换完全在浏览器中使用 JavaScript 完成,docker 命令绝不会发送到任何服务器。工具在页面加载后可离线使用。适合包含密码、API 密钥或内部主机名的敏感命令。
能把 docker-compose.yml 转回 docker run 吗?
∨
此工具仅支持 docker run → compose 方向的转换。反向转换(compose → docker run)可以使用 Decomposerize 工具。很多开发者根据需求在两个方向上交替使用。
为什么用 docker-compose.yml 而不是 docker run?
∨
docker-compose.yml 有诸多优势:可通过 Git 版本控制、方便团队共享、一条命令启停整个应用栈、依赖管理(depends_on)、网络隔离、开发/测试/生产环境一致性。它是多容器应用的标准配置方式。
支持包含特殊字符的环境变量吗?
∨
支持。包含等号、空格或特殊字符的环境变量在 YAML 输出中会被正确加引号。例如 -e DATABASE_URL='postgres://user:pass@host/db?sslmode=require' 会被正确转换并保留值。
能在手机上使用吗?
∨
可以在移动浏览器上使用。但为了获得最佳体验(尤其是长命令),推荐使用桌面浏览器,方便粘贴多行命令并排查看输出。
支持哪些 Compose 版本?
∨
工具支持三种 Compose 版本:Latest(通用规范,推荐)、v3.x 和 v2.x。不同版本会影响输出中是否包含 version 字段以及格式细节。推荐使用 Latest,它兼容所有现代 Docker Compose 版本。
怎么把 docker run 命令追加到已有的 compose 文件?
∨
点击工具栏的「合并到现有 compose 文件」,粘贴已有的 docker-compose.yml 内容,然后输入 docker run 命令。工具会自动将新服务合并到已有配置中,保留原有的服务、卷和网络定义。
缩进可以调整吗?
∨
可以。工具栏提供 2 和 4 两种缩进选项。默认为 4 空格缩进,选择 2 可以生成更紧凑的 YAML 输出。