0Pricing
Docker & DevOps Fundamentals · Lección

Escritura de un archivo Compose

Aprenda la sintaxis YAML de `docker-compose.yml` para definir servicios, redes y volúmenes.

Escritura de un archivo Compose es una lección gratuita de Docker & DevOps Fundamentals en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Docker & DevOps Fundamentals, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Docker & DevOps Fundamentals incluye 4 lecciones en total.

Archivo de Compose: el plano

¡Bienvenido a la creación de archivos de Docker Compose! El archivo docker-compose.yml es el plano que usará para definir y ejecutar aplicaciones de Docker compuestas por varios contenedores.

Utiliza la sintaxis YAML para configurar los servicios, las redes y los volúmenes de su aplicación en un único archivo.

Escritura de un archivo Compose — ilustración 1

YAML: breve repaso

Los archivos de Docker Compose se escriben en YAML (YAML Ain't Markup Language). Es un estándar de serialización de datos fácil de leer para las personas.

  • Pares clave-valor: key: value
  • Listas: Los elementos comienzan con un guion (- item)
  • Sangría: Es fundamental para definir la estructura y la jerarquía. Use espacios, no tabulaciones.

La clave `version`

Todos los archivos docker-compose.yml comienzan con una clave version. Esta especifica la versión del formato del archivo de Compose y ayuda a Docker Compose a interpretar el archivo.

Para la mayoría de las aplicaciones modernas, se recomienda '3.8' o una versión '3.x' similar.

version: '3.8'

Definición de `services`

En la sección services se definen los contenedores individuales (servicios) que componen su aplicación. Cada servicio representa un componente, como un servidor web o una base de datos.

Dentro de services, enumere cada servicio con el nombre que elija.

version: '3.8'
services:
  web:
    # Service configuration goes here
  database:
    # Another service's configuration

`image` y `ports` del servicio

Dentro de la definición de un servicio, image especifica qué imagen de Docker se debe usar (por ejemplo, nginx:latest). La clave ports asigna puertos del contenedor a puertos del host, lo que permite el acceso externo.

  • "80:80" asigna el puerto 80 del host al puerto 80 del contenedor.
version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

`volumes` del servicio

La clave volumes dentro de un servicio permite montar rutas de su máquina host en el contenedor o usar volúmenes con nombre para el almacenamiento persistente.

Este ejemplo monta el directorio local ./app en /usr/src/app dentro del contenedor.

version: '3.8'
services:
  app:
    image: my-node-app
    volumes:
      - ./app:/usr/src/app

Variables de `environment` del servicio

Use la clave environment para pasar variables de entorno a los contenedores de su servicio. Esto es fundamental para configuraciones que pueden cambiar entre entornos (por ejemplo, las cadenas de conexión a la base de datos).

Las variables se pueden indicar como pares clave-valor o en formato de lista.

version: '3.8'
services:
  backend:
    image: my-api
    environment:
      - DATABASE_URL=postgres://user:pass@host:5432/db
      - NODE_ENV=development

`networks` y `volumes` de nivel superior

Además de definirlos dentro de los servicios, también puede declarar volúmenes con nombre y redes personalizadas en el nivel superior de su archivo docker-compose.yml.

Esto permite organizar y reutilizar mejor las definiciones para la persistencia de datos y la comunicación entre contenedores.

version: '3.8'
services:
  # ... service definitions ...

networks:
  my_app_network:
    # custom network configuration

volumes:
  db_data:
    # named volume configuration

Unir todos los conceptos

A continuación se muestra un pequeño ejemplo que combina lo aprendido. Define un servicio web y un servicio de base de datos mediante una imagen, puertos y un volumen con nombre.

Observe cómo la indentación crea la estructura.

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - web_content:/usr/share/nginx/html
  db:
    image: postgres:13
    environment:
      - POSTGRES_DB=mydb
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=secret

volumes:
  web_content:
  db_data:

Comprobación del archivo Compose

¿Cuál de los siguientes fragmentos de YAML define correctamente un servicio de Docker Compose llamado 'api' que utiliza la imagen 'myapi:1.0' y expone el puerto 3000 del contenedor en el puerto 8080 del host?

Repaso: conceptos esenciales de Compose

¡Excelente trabajo! Ha aprendido los fundamentos para escribir un archivo docker-compose.yml.

  • Comienza con version.
  • services define los componentes de su aplicación.
  • Cada servicio utiliza una image, puede exponer ports, usar volumes para la persistencia y establecer variables de environment.
  • Las networks y volumes de nivel superior permiten una configuración avanzada.

Dominar esta estructura YAML es clave para orquestar aplicaciones con varios contenedores.

Preguntas frecuentes

¿La lección «Escritura de un archivo Compose» es gratis?

Sí — el texto completo de «Escritura de un archivo Compose» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Docker & DevOps Fundamentals, actualiza a CoddyKit PRO. El curso de Docker & DevOps Fundamentals incluye 4 lecciones en total.

¿Qué aprenderé en «Escritura de un archivo Compose»?

Aprenda la sintaxis YAML de `docker-compose.yml` para definir servicios, redes y volúmenes. Practicas Docker & DevOps Fundamentals con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Docker & DevOps Fundamentals?

No se requiere experiencia previa. Docker & DevOps Fundamentals en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Escritura de un archivo Compose»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Docker & DevOps Fundamentals?

Sí. Cada lección de Docker & DevOps Fundamentals incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. ¿Qué es Docker Compose?
  2. Escritura de un archivo Compose
  3. Implementación de aplicaciones con varios servicios
  4. Variables de entorno y archivos .env
← Volver a Docker & DevOps Fundamentals