任务路径 / 从输入到结果
如何把 docker run 命令转换为 Compose
- 01
粘贴 docker run 命令
面向 Linux 容器的 POSIX shell 字面量命令,输入最多 64 KiB UTF-8。raw 环境文件需要 Compose 2.30+。输出是配置草稿;不会执行或检查 shell、Docker 服务或镜像。请使用单条 docker run 字面量命令。主机变量请替换为明确的值;字面量 $ 请用单引号包裹或反斜杠转义。不支持 shell 展开、管道、重定向、命令替换和未转义的换行,支持反斜杠续行。
- 02
转换为 Compose 服务
转换名称、端口、明确赋值的环境变量、raw 环境文件、挂载、重启策略、网络、工作目录、用户、入口命令和标签。-i/-t(包括 -it)对应 stdin_open/tty。短选项支持紧接的值,长选项支持 =value;未知选项会停止转换。
- 03
检查生成的 YAML
镜像名后的参数按顺序写入 command 列表,保留空字符串。非空 entrypoint 保留为单个参数,空值会清除入口。字面量美元符号会双写以避免 Compose 再次替换。默认网络明确设为 bridge。绑定挂载区分 -v(可创建主机目录)与 --mount(路径必须存在)。
- 04
检查不支持列表
包含不支持的选项,未生成部分 YAML。请使用指南列出的选项;容器命令参数应放在镜像名之后。--rm 不写入 YAML,请自行选择相应的 Compose 运行和删除方式。-d/--detach 属于启动选项,需要时使用 docker compose up -d。
- 05
复制或下载 YAML
env_file 使用 raw 格式(需要 Compose 2.30+)保留美元符号和引号。相对路径以 compose.yaml 所在目录为基准。这里不检查文件内容和未赋值变量,请核对实际环境。命名卷和自定义网络按原名称引用外部资源,启动前必须已存在;这里不会创建或检查资源。