Docker Compose 生成器
手写 docker-compose.yml 意味着要记住精确的缩进、为每个端口映射加上引号,还要知道你的 Compose 程序识别哪个版本字符串。本生成器让你通过简单的字段定义服务:名称、镜像、宿主机:容器端口映射和卷。输出符合现代 Compose 规范(不含 version 键)的有效 YAML 文件,并附带合理的默认值。
如何构建 Compose 文件
-
1
添加服务
为每个服务设置名称、镜像、宿主机:容器端口映射和卷。已有两个示例服务填好。
-
2
调整或删除行
直接编辑任意字段,用 + Service 按钮添加另一个服务,或删除不需要的行。
-
3
检查生成的 YAML
预览会随输入实时更新:端口映射会加上引号,version 键会被省略,符合现代 Compose 规范。
-
4
复制文件
复制生成的 docker-compose.yml,粘贴到项目根目录。
现代 Compose 规范
Compose V2(随 Docker Desktop 和现代 Docker Engine 提供的插件)遵循 Compose 规范。version: 键已被弃用,生成器会省略它。顶层键为 services、networks、volumes、configs 和 secrets。
服务结构
一个接近生产环境的服务长这样:
services:
web:
image: nginx:1.27-alpine
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./public:/usr/share/nginx/html:ro
depends_on:
app:
condition: service_healthy
networks:
- frontend
- backend
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost/health"]
interval: 30s
timeout: 5s
retries: 3
卷:绑定挂载与命名卷
- 绑定挂载(
./app:/var/www)把容器绑定到宿主机上的路径,本地开发非常方便,因为改动会立即生效。 - 命名卷(
pgdata:/var/lib/postgresql/data)由 Docker 管理,独立于任何宿主机路径,适合数据库以及任何你不希望被rm -rf误删的内容。 - 匿名卷 - 应避免。它能撑过重启,但执行
docker compose down -v时会毫无提示地消失。
网络
默认情况下 Compose 会创建一个以项目命名的网络,并把每个服务连接上去。在以下情况显式声明网络很有用:
- 你想把数据库与面向公网的服务隔离。
- 你需要带自定义子网的 bridge,以对接现有基础设施。
- 你想把容器接入已存在的外部网络(
external: true)。
应避免的常见错误
- version 键冲突。 顶部的
version: "3.8"会让 healthcheck 的start_interval等新功能在旧版 Compose 上失效;生成器会省略 version 键。 - 端口引号。
8080:80在某些边界情况下会被解析为 YAML 的 60 进制数;生成器始终为端口映射加引号。 - 硬编码的密钥。 直接写进 compose.yml 的密钥最终会被提交到 git。请把它们放在
env_file或平台的密钥存储中。 - 没有条件的 depends_on。 简单的
depends_on: [db]只等容器启动,不等服务就绪。请使用condition: service_healthy并为依赖项添加健康检查。
常见问题
当前的 Compose 规范(与 Docker Compose V2 一致)。文件省略 version: 键,这是现代 Compose 文件的写法。适用于 Docker Compose V2.22 及以上版本。
此版本的表单暂不支持。生成器专注于包含镜像、端口和卷的服务定义。你可以在使用前手动为生成的 YAML 添加网络、环境变量、健康检查等键。
不会,此工具专注于 compose.yml。需要 Dockerfile 时,请使用 Dockerfile 生成器,它负责五种技术栈的基础镜像选择和 COPY/RUN 顺序。
不会。服务定义仅用于在此页面生成 YAML,不会被保存、上传或分享。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
电话号码验证器
根据各国号码规划检查结构,并显示地区、类型以及E.164、国际、国内和RFC 3966格式。
变更日志生成器
根据分类条目生成 Keep a Changelog 风格的 Markdown 部分。将条目粘贴到 Added、Changed、Fixed 和 Removed 下,选择 Markdown 或纯文本,然后复制输出。
cURL 命令生成器
根据 HTTP URL、请求头、认证、JSON、原始数据或表单字段,在浏览器中私密生成适用于 POSIX Shell 或 PowerShell 的 cURL 命令。
此工具还提供其他语言版本
- Generator Docker Compose [PL]
- Gerador de Docker Compose [PT]
- مولّد Docker Compose [AR]
- Generador de Docker Compose [ES]
- Générateur Docker Compose [FR]
- Docker Compose 생성기 [KO]
- Docker Compose Oluşturucu [TR]
- Docker Compose-generator [SV]
- Docker Compose Generator [EN]
- Trình tạo Docker Compose [VI]
- Generator Docker Compose [ID]
- Docker Composeジェネレーター [JA]
- ตัวสร้าง Docker Compose [TH]
- Docker Compose-generator [NL]
- Docker-Compose-Generator [DE]
- Generatore di Docker Compose [IT]
- Генератор Docker Compose [RU]