Docker Compose 生成器

通过表单创建有效的 docker-compose.yml:服务、镜像、端口、环境变量、卷、depends_on 和重启策略,并带有 PostgreSQL、MySQL 和 Redis 预设。

服务 1
服务 2
docker-compose.yml

遵循当前的 Compose 规范(不含 “version:” 键)。命名卷会自动声明。使用前请替换示例密码。

相关工具

查看全部

什么是 Docker Compose 生成器?

无需与 YAML 缩进较劲,就能为多容器环境构建 docker-compose.yml。从预设(PostgreSQL、MySQL、Redis、MongoDB、Nginx、你自己的应用)添加服务,或从空白开始,然后填写镜像或构建上下文、端口、环境变量、卷、依赖、重启策略和命令。YAML 会随输入实时更新,并会解释错误。

如何使用 Docker Compose 生成器

  1. 编辑示例服务,或使用 添加服务 插入预设。
  2. 为每个服务设置 镜像(或 构建上下文(无镜像时))、端口(主机:容器)、环境变量(KEY=value)、卷(源:目标)、依赖 和 重启策略。
  3. 修正红色列出的所有问题(无效的名称、端口、变量或依赖)。
  4. 下载 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)则映射你机器上的一个文件夹。

探索更多分类