跳到主要内容

docker run 转 compose

逐 flag 解析 docker run 命令,生成 compose 服务片段。

本地计算 · 数据不出浏览器
原文
0 字符1 行0 B
docker-compose.yml 服务片段
转换结果会显示在这里
0 字符1 行0 B

使用说明

这个工具解决什么问题

GitHub README 里的启动命令都是 docker run 一长串,搬进 compose 要逐个 flag 翻译:-p 对 ports、-e 对 environment、-v 对 volumes、--restart 对 restart……手工搬容易漏。这个工具逐 flag 解析 docker run 命令,直接生成标准 compose 服务片段。

核心能力

逐 flag 精确映射:--name/-p/-e/-v/-w/-u/--restart/--network/--entrypoint/--env-file/--label/--device/--memory/--cpus 等常用参数全部对应到 compose 字段,-it 展开 tty + stdin_open。

shell 语法兼容:\ 续行、单双引号包裹的参数、--flag=value 形式都能正确切词。

不猜不漏:未识别的 flag 不硬拒——跳过并在输出尾部以 YAML 注释写明,compose 文件保持合法的同时提醒你补手工配置。

使用建议

转换后先看输出尾部的备注行;引用自定义网络时按提示在顶层声明 networks。反向需求(读现有 compose)可以把 YAML 粘到「YAML 工具」格式化检查。服务名默认取镜像名,可用 --name 覆盖。

常见问题

生成的片段直接能用吗?

生成的 services 块是标准 compose 字段。若是插入已有 docker-compose.yml,把该段下面的服务块拷进去即可;单独使用时文件里还需要顶层 version(新版可省)与声明引用的自定义网络。

--gpus、--cap-add 这类参数去哪了?

这些参数 compose 里对应 deploy.resources 等更深的结构,工具会消费掉它们的参数值避免解析串位,并在输出末尾以「# 备注」注释写明跳过了什么——按提示手工补即可。

-d 和 --rm 为什么被忽略?

它们是「运行时行为」:-d 后台运行由 docker compose up -d 承担,--rm 的临时容器语义与 compose 常驻模型冲突。工具不会静默丢弃,会写成备注提醒你。

chmod 权限计算

rwx 复选框与八进制/符号表示三向联动,支持特殊位。

Cron 表达式解释

把 cron 表达式翻译成人话,并给出未来 5 次执行时间。

本地 + 可选 AI

CSP 生成器

Content-Security-Policy 可视化生成与解析,unsafe 风险提示。

查看更多格式转换,或浏览全部工具。