在 docker run 命令和 Docker Compose YAML 之间即时转换。
| 标志 | Compose 键 | 示例 |
|---|---|---|
| --name | container_name | --name myapp |
| -p / --publish | ports | -p 8080:80 |
| -e / --env | environment | -e NODE_ENV=prod |
| -v / --volume | volumes | -v /host:/container |
| --network | networks | --network appnet |
| --restart | restart | --restart unless-stopped |
| --entrypoint | entrypoint | --entrypoint "/bin/sh" |
| -m / --memory | mem_limit | -m 512m |
| --cpus | cpus | --cpus 1.5 |
| -u / --user | user | -u 1000:1000 |
| -w / --workdir | working_dir | -w /app |
| -l / --label | labels | -l app=myapp |
生成的 YAML 遵循 Compose 规范(Docker Compose V2+ 使用)。旧版 version: 键被有意省略——它已弃用,现代 Docker Desktop 和 Docker Engine 不再需要它。
一旦 docker run 命令包含多个端口、卷、环境变量和网络标志,就难以管理。docker-compose.yml 可进行版本控制、易于阅读,并支持使用单个 "docker compose up" 命令进行多服务编排。
转换器支持最常见的标志:-d/--detach、--name、-p/--publish、-e/--env/--env-file、-v/--volume、--network、--restart、--memory/-m、--cpus、--user、--workdir/-w、--entrypoint、--label/-l 以及通过 CMD 的多词命令。镜像和标签始终会被提取。
通常对于简单服务,生成的 YAML 可以直接使用。对于复杂设置,您可能需要添加 depends_on、healthcheck、构建上下文或 secrets。生成器创建一个最小、正确的起点,您可以在此基础上扩展。
转换器生成不带 version: 键的现代 Compose 格式,遵循 Compose 规范(Docker Compose V2 及更高版本使用)。version: 键在最新规范中已弃用。