docker run 转 docker-compose
docker run 转 docker-compose是一款免费的在线IT 开发工具,输入参数即可实时得出结果;纯前端运行、数据不上传、无需注册,打开浏览器即…
🖥️ Docker Run to Compose Converter
Paste a docker run command and parse the image, ports, volumes, environment and restart policy into a docker-compose.yml snippet. Runs locally.
📐 工作原理与说明
把 docker run 命令转换为 docker-compose 配置。
- 映射:
-p→ports、-v→volumes、-e→environment、--name→container_name、--network→networks。 - 其他:镜像名→image、命令→command、
--restart→restart、--link→depends_on/links。 - 解析:需处理引号包裹与反斜杠续行的多行命令。
- 输出:生成 YAML 时注意缩进一致与含特殊字符值的引号包裹。
⚠️ 使用说明与注意事项
- 支持参数:-d/--detach、-p/--publish、-v/--volume、-e/--env、--name、--restart;其余未知 - 参数在解析时跳过,可按需手动补到 compose。
- compose 默认以后台运行,原 -d 无需对应字段;restart 策略沿用 unless-stopped / always / no 等原值。
- 本解析为轻量级:不支持 --network、--link、多值 -e 合并等复杂写法,生成后请在本地 docker compose config 校验。
📋 常用参数对照
| docker run | compose 字段 |
|---|---|
| -p 8080:80 | ports: - "8080:80" |
| -v /d:/a | volumes: - /d:/a |
| -e K=V | environment: - K: "V" |
| --name web | service 键名 web |
| --restart always | restart: always |
📚 深度解析:Docker Run to Compose
💡 常见使用场景
- 把 docker run 命令转 docker-compose。
- 把线上正在用的 docker run 命令转成 compose 文件,固化到仓库里,便于团队复现环境而不是靠口头传参。
转换
`docker run -p 80:80 nginx` → compose `services.web.image=nginx ports=["80:80"]`。
❓ 常见问题(FAQ)
- 卷怎么转?
- `-v` 转为 volumes 映射。
- 哪些参数转不了?
- compose 与 run 的表达能力不完全对等:复杂网络配置、--security-opt 的细粒度项,以及 shell 里的变量与管道都需要手工调整。转换后务必用 docker compose config 校验结构,并在测试环境实际启动一次确认行为一致。