使用步骤
- 在左侧粘贴 Compose 文件,或点「载入示例」。
- 右侧为每个服务生成一条 docker run 命令,按文件中的顺序排列。
- 检查黄色提示里没有转换的字段(如 build、deploy、depends_on),再复制命令执行。
参数说明
- 支持的字段
- image、container_name、command、entrypoint、ports、volumes(短语法和长语法)、environment、env_file、networks、network_mode、restart、user、working_dir、labels、logging、ulimits、healthcheck、资源限制等。
- 不转换的字段
- build、deploy、depends_on、secrets、configs 等只在 Compose 里有意义的字段会列在提示中。没有 image 的服务会用占位的镜像名,需要先自己构建。
- 多个网络
- docker run 只能用 --network 连接一个网络,其余网络需要之后用 docker network connect 连接。
示例
像这样的一个服务:
services:
web:
image: nginx:1.27
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
- data:/var/cache/nginx
environment:
TZ: UTC
restart: unless-stopped
depends_on: [db]
会变成:
docker run -d \
--name web \
-p 8080:80 \
-v ./html:/usr/share/nginx/html:ro \
-v data:/var/cache/nginx \
-e TZ=UTC \
--restart unless-stopped \
nginx:1.27
depends_on 在 docker run 里没有对应的写法,所以只在提示里列出。它所指向的服务需要你自己按正确的顺序启动。相对路径 ./html 是相对于你运行命令时所在的目录解析的,所以要在包含这个目录的文件夹里运行。
常见问题
为什么命令里都有 -d?
Compose 默认在后台运行服务(docker compose up -d),所以生成的命令也带 -d。需要在前台看输出时去掉即可。
命名卷和网络需要先创建吗?
docker run 会自动创建不存在的命名卷,但自定义网络需要先执行 docker network create 网络名。
数据会上传吗?
不会。解析和转换都在浏览器中完成。
隐私说明
本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。