Generador de Docker Compose

Crea un docker-compose.yml válido desde un formulario: servicios, imágenes, puertos, entorno, volúmenes, depends_on y reinicio, con preajustes de PostgreSQL, MySQL y Redis.

Servicio 1
Servicio 2
docker-compose.yml

Sigue la especificación actual de Compose (sin clave «version:»). Los volúmenes con nombre se declaran automáticamente. Cambia las contraseñas de ejemplo antes de usarlo.

Herramientas Relacionadas

Ver Todas

¿Qué es Generador de Docker Compose?

Crea un docker-compose.yml para configuraciones con varios contenedores sin pelearte con la sangría de YAML. Añade servicios desde preajustes (PostgreSQL, MySQL, Redis, MongoDB, Nginx, tu propia app) o empieza desde cero, y luego rellena la imagen o el contexto de build, los puertos, las variables de entorno, los volúmenes, las dependencias, la política de reinicio y el comando. El YAML se actualiza mientras escribes y los errores se explican.

Cómo usar Generador de Docker Compose

  1. Edita los servicios de ejemplo o usa Añadir un servicio para insertar un preajuste.
  2. En cada servicio, configura la Imagen (o el Contexto de build (si no hay imagen)), los Puertos (host:contenedor), el Entorno (CLAVE=valor), los Volúmenes (origen:destino), Depende de y la Política de reinicio.
  3. Corrige los problemas que aparezcan en rojo (nombres, puertos, variables o dependencias no válidos).
  4. Descarga docker-compose.yml y ejecuta docker compose up -d.

Ejemplo

Entrada
Servicio app (build ., puerto 3000, NODE_ENV=production, depende de db) + preajuste PostgreSQL
Salida
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: {}

Cuándo usar Generador de Docker Compose

Úsalo para montar stacks de desarrollo local, demos y despliegues sencillos en un solo host. Para producción, normalmente añadirás a mano health checks, límites de recursos, secretos y redes, o usarás un orquestador como Kubernetes. Cambia las contraseñas de ejemplo de los preajustes antes de usarlos en cualquier sitio.

Cómo funciona Generador de Docker Compose

El formulario se convierte en un objeto que sigue la Compose Specification actual (sin la clave obsoleta version:) y se serializa a YAML con js-yaml. Los mapeos de puertos van entre comillas, porque valores sin comillas como 22:22 pueden leerse como números en base 60 en parsers YAML 1.1. Las líneas de entorno KEY=value se convierten en un mapeo, y cualquier volumen cuyo origen sea un nombre y no una ruta (p. ej., pgdata:/var/lib/postgresql/data) se declara automáticamente bajo la clave volumes: de nivel superior. Se validan los nombres de servicio, los formatos de puerto, la sintaxis KEY=value y los destinos de depends_on.

Casos de Uso Comunes

  • Ejecutar en local una app con PostgreSQL y Redis
  • Compartir con el equipo un entorno de desarrollo reproducible
  • Crear un archivo compose para una herramienta autoalojada
  • Aprender la sintaxis de Compose con ejemplos

Nota de Seguridad

Publicar los puertos de la base de datos (p. ej., 5432:5432) los expone en todas las interfaces del host. En servidores, elimina el mapeo de puertos o vincúlalo a 127.0.0.1, y usa contraseñas fuertes o secretos.

Preguntas Frecuentes

¿Por qué no hay línea version:?

La clave version está obsoleta en la Compose Specification que usa Docker Compose v2; las versiones actuales la ignoran y muestran una advertencia.

¿depends_on espera a que la base de datos esté lista?

No, solo controla el orden de arranque. Añade un healthcheck y condition: service_healthy, o reintenta las conexiones en tu app.

¿Qué diferencia hay entre un volumen con nombre y un bind mount?

Un volumen con nombre (pgdata:/path) lo gestiona Docker y sobrevive a la recreación del contenedor; un bind mount (./data:/path) mapea una carpeta de tu máquina.

Explora más categorías