將 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 内容并提示人工复核。
生成結果可以直接部署吗?
建议先審查网络、卷、環境變數和生命周期差异,再纳入仓库。