跳到主要内容

Docker Run 转 Compose 转换器

将长的 `docker run …` 命令转换为等效的 docker-compose.yml 服务定义——端口、卷、环境、网络、健康检查、资源限制等。完全在您的浏览器中运行。

输入

输出

docker-compose.yml
 
这对您有帮助吗?

使用此工具的更多方式

REST API

curl -X POST https://api.iotools.cloud/v1/tool/docker-run-to-compose-converter \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "dockerRunInput": "docker run -d \\\n  --name nginx-proxy \\\n  --resta…"
  }'

替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。

让 AI 代理执行

Use the IOTools `docker-run-to-compose-converter` tool (Docker Run to Compose Converter) on this input:

YOUR_INPUT_HERE

将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。

嵌入式小组件

<iframe
  src="https://iotools.cloud/embed/docker-run-to-compose-converter/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="Docker Run 转 Compose 转换器 — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。

每次 API/MCP 调用费用5 积分起
需要更多积分?查看定价

也可通过

使用指南

Docker Run 转 Compose 转换器将长的 docker run … 命令转换为等效的 docker-compose.yml 服务定义。粘贴您通常在终端中键入的命令,获得可立即保存的 Compose 文件——不再需要手动将数十个 -p、-v 和 -e 标志转换为 YAML。

该工具是为当您在项目 README、博文或 shell 历史记录中找到容器并想以声明方式管理它时而构建的。Compose 文件比命令行标志墙更容易进行版本控制、审查和重启。

使用方法

  1. 将完整命令粘贴到Docker Run 命令框中,例如 docker run -d --name web -p 8080:80 -v ./html:/usr/share/nginx/html nginx:alpine。
  2. docker-compose.yml 输出会在您输入时更新。
  3. 复制或下载为 docker-compose.yml,然后在该目录中运行 docker compose up -d。

带有尾部反斜杠 (\) 的多行命令可以正确粘贴——转换器在解析前会合并连续行。

转换的内容

该工具理解人们实际使用的标志:-p/--publish(端口)、-v/--volume(卷)、-e/--env 和 --env-file(环境)、--name、--restart、--network、-l/--label、--user、--workdir、--entrypoint、capability(--cap-add/--cap-drop)、--device、--dns、--add-host、tmpfs、--ulimit、--sysctl 以及健康检查标志(--health-cmd、--health-interval 等)。资源标志——--memory、--memory-reservation、--cpus、--cpu-shares——在 deploy.resources 块下输出。镜像名称后的任何镜像参数都成为服务的 command。

常见问题

它会生成版本键吗?

不会。顶级 version: 字段在当前 Compose 规范中已过时,并被有意省略。现代 docker compose 会忽略它。

命名网络如何处理?

--network host、none、bridge 或 container:<id> 值映射到 network_mode。任何其他网络名称都被视为用户定义的网络:添加到服务的 networks: 列表中,并在文件底部声明为 external: true(假设您已使用 docker network create 创建过它)。

为什么 --cpu-shares 除以 1024?

Docker 的 CPU shares 是相对权重,其中 1024 等于一个完整的 CPU。Compose 的 reservations.cpus 期望一个小数核心数,因此该值被转换(例如 512 变成 "0.50")。

它会处理我不认识的标志吗?

没有 Compose 等效项的标志(如 --rm 或 -d)被简单地丢弃,因为它们描述的是 CLI 如何运行而不是服务本身。如果输入不以 docker run 开头,您会收到一条简短的注释说明,而不是损坏的文件。

它是完整的 YAML 验证器吗?

不是——它输出一个干净的、正确引用的 Compose 文件,但不会根据 Compose 规范进行模式验证。在部署前审查结果。

隐私

转换完全在您的浏览器中运行。您的命令——包括环境变量或标签中的任何秘密——永远不会上传到服务器。因此,避免粘贴生产环境凭据,并像对待原始命令一样对待生成的文件。

dockerdocker-composecomposedocker runyamldevopscontainersconverter

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。