将 docker run 命令转换为 docker-compose.yml 服务定义。
把常见的 docker run 命令转换成可审阅的 Compose 服务片段,便于在本地整理端口、环境变量、卷、工作目录和启动命令,再交给团队或部署流程复核。
解析 --name、--restart、-p/--publish、-e/--env、-v/--volume、--network、-w 等常见参数。
生成 docker-compose.yml 服务片段,并对 --rm、--init、--pull、--mount 等不完全等价的选项给出警告。
保留镜像名和镜像后的命令参数,帮助把一次性运行命令迁移到可维护的服务定义。
Redis
docker run -d --name redis -p 6379:6379 redis:7
Postgres
docker run --name pg -e POSTGRES_PASSWORD=secret -v pgdata:/var/lib/postgresql/data -p 5432:5432 postgres:16
Node command
docker run --rm -it -v "$PWD:/app" -w /app node:22 npm test
Compose 端口
ports: - "6379:6379"
环境变量
environment: POSTGRES_PASSWORD: "secret"
警告
--rm has no direct compose equivalent. Review lifecycle behavior manually.
把 --rm 当作 Compose 生命周期
Compose 默认保留容器;需要在运行流程或清理脚本里单独处理。
--mount 没有人工复核
检查 source、target、type,再决定是否改写为 volumes。
镜像后的命令被遗漏
确认 command 字段保留了 npm test、bash 等后续参数。
适合作为迁移和审查起点,最终 Compose 文件仍应经过团队的运行时验证。
会执行 Docker 命令吗?
不会。页面只解析文本并生成 Compose 片段。
--mount 会自动转换吗?
不会自动转换;页面会保留原始 mount 内容并提示人工复核。
生成结果可以直接部署吗?
建议先审查网络、卷、环境变量和生命周期差异,再纳入仓库。