开发者 / Docker
docker run转Docker Compose转换器
将docker run命令转换为compose.yaml文件,处理端口、卷、环境变量、网络、重启策略、健康检查、GPU等内容;也可将Compose服务转换回docker run命令,并列出没有对应项的选项。
docker run转Docker Compose转换器: 工具会按照Shell的解析方式拆分命令,处理引号和转义,并将每个选项映射到对应的Compose键:-p映射到ports,-v和--mount映射到volumes,-e映射到environment,--restart映射到重启策略,--network映射到网络,--health-cmd映射到healthcheck,--gpus映射到设备预留等,此外还支持大约四十项。命名卷和网络会生成对应的顶层条目。多个命令会成为同一个文件中的多个服务。没有Compose对应项的选项会单独列出,不会在不作说明的情况下直接丢弃。 完全在浏览器中本地运行,文件不会上传到服务器。
- 类别
- 开发者工具
- 使用次数
- 在浏览器中
- 费用
- 免费·无需注册
- 可用性
- 可直接使用
完全在浏览器中运行
compose.yaml
services:
db:
image: postgres:16
container_name: db
environment:
- POSTGRES_PASSWORD=change-me
volumes:
- pgdata:/var/lib/postgresql/data
ports:
- 5432:5432
restart: unless-stopped
volumes:
pgdata:
转换之后
运行docker compose config检查文件,并查看填入默认值后的内容,然后运行docker compose up -d启动程序。固定镜像版本,例如使用postgres:16而不是latest,这样重启时就不会意外升级数据库。
要以其他格式读取文件,可以使用YAML转JSON进行转换;要安排容器中的定时任务,请查看cron说明,其中介绍了cron表达式。
卷和数据
名为pgdata的卷由Docker管理,即使运行docker compose down也会保留;而./data这样的路径对应主机上的文件夹。在使用会删除卷的docker compose down -v之前,请先备份命名卷。
使用方法
- 粘贴一个或多个docker run命令;使用反斜杠进行换行也可以。
- 查看生成的compose.yaml,以及无法转换的选项。
- 复制或下载结果,或切换方向,将Compose文件转换为docker run命令。
隐私与限制
所有操作都在浏览器中运行;你的命令可能包含密码,但不会上传。
相关工具
常见问题
为什么要使用Compose,而不是docker run?
Compose文件可以将完整设置记录在一个地方,便于阅读、版本管理,并可使用docker compose up启动,而不必将很长的命令保存在Shell历史记录中。它还可以同时启动多个容器及其网络和卷。
--rm和-d会如何处理?
Compose没有--rm;容器可通过docker compose down删除。-d是在运行docker compose up -d时选择的,因此不会写入文件。
为什么网络会标记为external?
docker run --network使用的是已存在的网络,因此转换后的文件会以相同方式引用该网络。如果希望由Compose自行创建网络,请删除external: true。
应该把密码保存在文件中吗?
对于密码和密钥,建议使用不纳入版本控制的env_file,或使用Docker secrets。转换器会保留命令中的原有内容,因此在提交文件前,请检查environment部分。
免费工具·使用在浏览器中次·无需账户