Docker Compose 生成器
通过表单创建有效的 docker-compose.yml:服务、镜像、端口、环境变量、卷、depends_on 和重启策略,并带有 PostgreSQL、MySQL 和 Redis 预设。
遵循当前的 Compose 规范(不含 “version:” 键)。命名卷会自动声明。使用前请替换示例密码。
相关工具
查看全部什么是 Docker Compose 生成器?
无需与 YAML 缩进较劲,就能为多容器环境构建 docker-compose.yml。从预设(PostgreSQL、MySQL、Redis、MongoDB、Nginx、你自己的应用)添加服务,或从空白开始,然后填写镜像或构建上下文、端口、环境变量、卷、依赖、重启策略和命令。YAML 会随输入实时更新,并会解释错误。
如何使用 Docker Compose 生成器
- 编辑示例服务,或使用 添加服务 插入预设。
- 为每个服务设置 镜像(或 构建上下文(无镜像时))、端口(主机:容器)、环境变量(KEY=value)、卷(源:目标)、依赖 和 重启策略。
- 修正红色列出的所有问题(无效的名称、端口、变量或依赖)。
- 下载 docker-compose.yml 并运行
docker compose up -d。
示例
Service app (build ., port 3000, NODE_ENV=production, depends on db) + PostgreSQL preset
services:
app:
build: .
restart: unless-stopped
ports:
- "3000:3000"
environment:
NODE_ENV: production
depends_on:
- db
db:
image: postgres:16-alpine
restart: unless-stopped
ports:
- "5432:5432"
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: change-me
POSTGRES_DB: app
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata: {} 何时使用 Docker Compose 生成器
适合搭建本地开发环境、演示和简单的单机部署。对于生产环境,你通常还需要手动添加健康检查、资源限制、密钥和网络,或使用 Kubernetes 这样的编排器。在任何地方使用预设之前,请先替换其中的示例密码。
Docker Compose 生成器 的工作原理
表单被转换为遵循当前 Compose 规范的对象(不含已过时的 version: 键),再用 js-yaml 序列化为 YAML。端口映射会加引号,因为 22:22 这样不加引号的值可能被 YAML 1.1 解析器读成六十进制数。环境变量行 KEY=value 会变成映射,任何来源是名称而非路径的卷(例如 pgdata:/var/lib/postgresql/data)会自动声明在顶层的 volumes: 键下。服务名称、端口格式、KEY=value 语法和 depends_on 的目标都会被验证。
常见用例
- 在本地运行带 PostgreSQL 和 Redis 的应用
- 与团队共享可重现的开发环境
- 为自托管工具创建 compose 文件
- 通过示例学习 Compose 语法
安全提示
发布数据库端口(例如 5432:5432)会把它们暴露在所有主机网卡上。在服务器上请移除端口映射或绑定到 127.0.0.1,并使用强密码或密钥。
常见问题
为什么没有 version: 这一行?
version 键在 Docker Compose v2 使用的 Compose 规范中已经过时;当前版本会忽略它并打印警告。
depends_on 会等到数据库就绪吗?
不会,它只控制启动顺序。请添加 healthcheck 和 condition: service_healthy,或让应用重试连接。
具名卷和绑定挂载有什么区别?
具名卷(pgdata:/path)由 Docker 管理,容器重建后仍然保留;绑定挂载(./data:/path)则映射你机器上的一个文件夹。