Generador de Docker Compose
Escribir un docker-compose.yml a mano significa recordar la indentación exacta, poner entre comillas cada mapeo de puertos y saber qué cadena de versión entiende tu binario de Compose. Este generador te permite definir servicios con campos sencillos: un nombre, una imagen, mapeos de puertos host:contenedor y volúmenes. Genera un archivo YAML válido con la especificación moderna de Compose (sin clave de versión) y valores predeterminados sensatos.
Cómo construir un archivo Compose
-
1
Agregar servicios
Indica un nombre, una imagen, los mapeos de puertos host:contenedor y los volúmenes de cada servicio. Ya hay dos servicios de ejemplo rellenados.
-
2
Ajustar o quitar filas
Edita cualquier campo directamente, añade otro servicio con el botón + Service o elimina la fila que no necesites.
-
3
Revisar el YAML generado
La vista previa se actualiza mientras escribes: los mapeos de puertos van entre comillas y se omite la clave de versión, tal como espera la especificación moderna de Compose.
-
4
Copiar el archivo
Copia el docker-compose.yml generado y pégalo en la raíz de tu proyecto.
La especificación moderna de Compose
Compose V2 (el complemento incluido con Docker Desktop y el motor Docker moderno) sigue la Especificación de Compose. La clave version: está obsoleta; el generador la omite. Las claves de nivel superior son services, networks, volumes, configs y secrets.
Anatomía del servicio
Un servicio orientado a producción se ve así:
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
Volúmenes: montaje por enlace vs nombrado
- Montaje por enlace (
./app:/var/www) vincula el contenedor a una ruta en el host; excelente para el desarrollo local porque los cambios se reflejan de inmediato. - Volumen nombrado (
pgdata:/var/lib/postgresql/data) es gestionado por Docker y persiste independientemente de cualquier ruta del host; la elección correcta para bases de datos y cualquier cosa que no quieras eliminar accidentalmente conrm -rf. - Volumen anónimo - evitar. Sobrevive a los reinicios pero desaparece en
docker compose down -vsin advertencia.
Redes
Por defecto, Compose crea una red nombrada según el proyecto y conecta cada servicio a ella. Declarar redes explícitas es útil cuando:
- Quieres aislar una base de datos de un servicio expuesto al público.
- Necesitas un puente con una subred personalizada para alinearte con la infraestructura existente.
- Quieres adjuntar contenedores a una red externa preexistente (
external: true).
Errores comunes que conviene evitar
- Conflictos de clave de versión.
version: "3.8"en la parte superior impide que funciones más nuevas comostart_intervalde healthcheck funcionen en Compose antiguo; el generador omite la clave de versión. - Citas de puertos.
8080:80se analiza como YAML base-60 en algunos casos extremos; el generador siempre pone entre comillas los mapeos de puertos. - Secretos codificados. Los secretos escritos directamente en compose.yml acaban comprometidos en git. Guárdalos en un
env_fileo en el gestor de secretos de la plataforma. - depends_on sin condición.
depends_on: [db]simple espera a que el contenedor se inicie, no a que el servicio esté listo. Usacondition: service_healthyy añade un healthcheck a la dependencia.
Preguntas frecuentes
La Especificación de Compose actual (alineada con Docker Compose V2). El archivo omite la clave version:, que es como se escriben los archivos de Compose modernos. Funciona con Docker Compose V2.22 y versiones posteriores.
No a través del formulario en esta versión. El generador se centra en definiciones de servicios con imagen, puertos y volúmenes. Puedes añadir redes, variables de entorno, health checks y otras claves al YAML generado a mano antes de usarlo.
No, esta herramienta se centra en compose.yml. Para Dockerfiles, usa el Generador de Dockerfile, que gestiona la elección de la imagen base y el orden de COPY/RUN para cinco tecnologías.
No. Las definiciones de servicios solo se usan para construir el YAML en esta página. No se almacenan, no se suben ni se comparten.
Herramientas relacionadas
Referencia de la tabla ASCII
Tabla ASCII completa del 0 al 127 con decimal, hex, octal, binario y referencia numérica HTML para cada carácter, incluidos los códigos de control como NUL, LF y DEL.
Referencia de caracteres HTML
Lista buscable de entidades HTML, sus códigos nombrados y numéricos, y una copia con un clic para caracteres y símbolos especiales.
Referencia de atajos de teclado
Busca los atajos predeterminados documentados de VS Code, Chrome y Bash con GNU Readline en macOS, Windows y Linux.
Generador de letras aleatorias
Genera letras aleatorias A-Z. Elige la cantidad, usa mayúsculas, minúsculas o mezcla de ambas, y aplica el resultado en juegos, consignas o clase.
Generador de Paletas de Color
Genera paletas monocromáticas, análogas, complementarias, triádicas o tetrádicas desde un color base HEX y exporta variables CSS listas para copiar.
Formateador de JSON
Pega JSON para verlo con sangría de 2 o 4 espacios, minificarlo en una salida compacta o comprobar rápidamente la sintaxis antes de copiar el resultado.
Herramienta disponible en otros idiomas
- Docker Compose Generator [EN]
- Trình tạo Docker Compose [VI]
- Docker-Compose-Generator [DE]
- Docker Compose-generator [SV]
- Docker Compose 생성기 [KO]
- Gerador de Docker Compose [PT]
- Generator Docker Compose [PL]
- Générateur Docker Compose [FR]
- Docker Compose-generator [NL]
- Docker Compose 生成器 [ZH]
- مولّد Docker Compose [AR]
- ตัวสร้าง Docker Compose [TH]
- Docker Composeジェネレーター [JA]
- Docker Compose Oluşturucu [TR]
- Generator Docker Compose [ID]
- Generatore di Docker Compose [IT]
- Генератор Docker Compose [RU]