Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Gestión de Aplicaciones Multicontenedor | Trabajando con Docker Compose
Docker Essentials

bookGestión de Aplicaciones Multicontenedor

Al desarrollar aplicaciones modernas, a menudo es necesario ejecutar varios servicios juntos—como servidores web, bases de datos y sistemas de caché—que deben comunicarse y funcionar como un sistema unificado. Docker Compose simplifica este proceso al permitir definir todos los servicios, sus dependencias y cómo interactúan, todo en un único archivo docker-compose.yml.

Definición de dependencias y enlaces de servicios en docker-compose.yml

En el archivo docker-compose.yml, cada servicio puede declarar dependencias y especificar cómo se conecta con otros. La clave depends_on permite definir el orden de inicio de los servicios, asegurando, por ejemplo, que una base de datos esté en funcionamiento antes de que la aplicación intente conectarse. Además, Compose crea automáticamente una red predeterminada para el proyecto, facilitando que los servicios se descubran y comuniquen entre sí usando el nombre del servicio.

Suponga que tiene una aplicación web que depende de una base de datos. En el archivo Compose, defina los servicios de la siguiente manera:

version: "3.8"
services:
  app:
    build: .
    depends_on:
      - db
  db:
    image: postgres:15

Aquí:

  • El servicio app depende de db;
  • Compose iniciará el contenedor de la base de datos antes que la aplicación;
  • Ambos servicios pueden referirse entre sí utilizando los nombres de servicio como nombres de host dentro de la red de Compose.

Estrategias para escalar servicios y actualizar configuraciones

Docker Compose facilita el escalado horizontal de servicios. Si la aplicación necesita manejar más tráfico, es posible aumentar el número de contenedores para un servicio utilizando la opción --scale al ejecutar docker compose up.

Para ejecutar tres instancias del servicio de la aplicación, utilice:

docker compose up --scale app=3
  • Este comando lanza tres contenedores para el servicio app;
  • Todos los contenedores están conectados a la misma red y pueden compartir recursos, como una base de datos;
  • Al escalar, asegúrese de que los servicios sean sin estado o puedan manejar múltiples instancias correctamente.

Actualizar configuraciones en un entorno Compose es sencillo:

  • Modifique el archivo docker-compose.yml—por ejemplo, cambie variables de entorno, límites de recursos o imágenes de servicios;
  • Aplique los cambios con el siguiente comando:
docker compose up -d
  • Este comando recrea solo los servicios cuya configuración ha cambiado, minimizando el tiempo de inactividad.

Monitoreo y solución de problemas de aplicaciones multicontenedor con Compose

Al ejecutar múltiples contenedores, el monitoreo y la solución de problemas son fundamentales. Docker Compose proporciona herramientas para observar el estado y los registros de los servicios. Es posible ver la salida de todos los contenedores en tiempo real con:

docker compose logs -f

Este comando transmite los registros de todos los servicios, facilitando la identificación de errores o problemas a medida que ocurren. Si necesita enfocarse en un servicio en particular, especifique su nombre:

docker compose logs db

Para la solución de problemas, puede ingresar a un contenedor en ejecución utilizando:

docker compose exec app sh

Este comando proporciona un shell dentro del contenedor app, permitiendo inspeccionar archivos, ejecutar comandos de diagnóstico o verificar variables de entorno. El monitoreo del uso de recursos y el estado de los contenedores también puede realizarse con herramientas estándar de Docker, como docker stats.

1. ¿Qué clave en un archivo docker-compose.yml garantiza que un servicio se inicie antes que otro?

2. ¿Cómo se escala un servicio llamado worker a cinco instancias usando Docker Compose?

3. ¿Qué comando usarías para ver los registros en tiempo real de todos los servicios en ejecución en una aplicación Compose?

question mark

¿Qué clave en un archivo docker-compose.yml garantiza que un servicio se inicie antes que otro?

Select the correct answer

question mark

¿Cómo se escala un servicio llamado worker a cinco instancias usando Docker Compose?

Select the correct answer

question mark

¿Qué comando usarías para ver los registros en tiempo real de todos los servicios en ejecución en una aplicación Compose?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain how to use environment variables in docker-compose.yml?

What are some best practices for managing secrets with Docker Compose?

How do I connect an external service (like Redis) to my Compose network?

Awesome!

Completion rate improved to 7.14

bookGestión de Aplicaciones Multicontenedor

Desliza para mostrar el menú

Al desarrollar aplicaciones modernas, a menudo es necesario ejecutar varios servicios juntos—como servidores web, bases de datos y sistemas de caché—que deben comunicarse y funcionar como un sistema unificado. Docker Compose simplifica este proceso al permitir definir todos los servicios, sus dependencias y cómo interactúan, todo en un único archivo docker-compose.yml.

Definición de dependencias y enlaces de servicios en docker-compose.yml

En el archivo docker-compose.yml, cada servicio puede declarar dependencias y especificar cómo se conecta con otros. La clave depends_on permite definir el orden de inicio de los servicios, asegurando, por ejemplo, que una base de datos esté en funcionamiento antes de que la aplicación intente conectarse. Además, Compose crea automáticamente una red predeterminada para el proyecto, facilitando que los servicios se descubran y comuniquen entre sí usando el nombre del servicio.

Suponga que tiene una aplicación web que depende de una base de datos. En el archivo Compose, defina los servicios de la siguiente manera:

version: "3.8"
services:
  app:
    build: .
    depends_on:
      - db
  db:
    image: postgres:15

Aquí:

  • El servicio app depende de db;
  • Compose iniciará el contenedor de la base de datos antes que la aplicación;
  • Ambos servicios pueden referirse entre sí utilizando los nombres de servicio como nombres de host dentro de la red de Compose.

Estrategias para escalar servicios y actualizar configuraciones

Docker Compose facilita el escalado horizontal de servicios. Si la aplicación necesita manejar más tráfico, es posible aumentar el número de contenedores para un servicio utilizando la opción --scale al ejecutar docker compose up.

Para ejecutar tres instancias del servicio de la aplicación, utilice:

docker compose up --scale app=3
  • Este comando lanza tres contenedores para el servicio app;
  • Todos los contenedores están conectados a la misma red y pueden compartir recursos, como una base de datos;
  • Al escalar, asegúrese de que los servicios sean sin estado o puedan manejar múltiples instancias correctamente.

Actualizar configuraciones en un entorno Compose es sencillo:

  • Modifique el archivo docker-compose.yml—por ejemplo, cambie variables de entorno, límites de recursos o imágenes de servicios;
  • Aplique los cambios con el siguiente comando:
docker compose up -d
  • Este comando recrea solo los servicios cuya configuración ha cambiado, minimizando el tiempo de inactividad.

Monitoreo y solución de problemas de aplicaciones multicontenedor con Compose

Al ejecutar múltiples contenedores, el monitoreo y la solución de problemas son fundamentales. Docker Compose proporciona herramientas para observar el estado y los registros de los servicios. Es posible ver la salida de todos los contenedores en tiempo real con:

docker compose logs -f

Este comando transmite los registros de todos los servicios, facilitando la identificación de errores o problemas a medida que ocurren. Si necesita enfocarse en un servicio en particular, especifique su nombre:

docker compose logs db

Para la solución de problemas, puede ingresar a un contenedor en ejecución utilizando:

docker compose exec app sh

Este comando proporciona un shell dentro del contenedor app, permitiendo inspeccionar archivos, ejecutar comandos de diagnóstico o verificar variables de entorno. El monitoreo del uso de recursos y el estado de los contenedores también puede realizarse con herramientas estándar de Docker, como docker stats.

1. ¿Qué clave en un archivo docker-compose.yml garantiza que un servicio se inicie antes que otro?

2. ¿Cómo se escala un servicio llamado worker a cinco instancias usando Docker Compose?

3. ¿Qué comando usarías para ver los registros en tiempo real de todos los servicios en ejecución en una aplicación Compose?

question mark

¿Qué clave en un archivo docker-compose.yml garantiza que un servicio se inicie antes que otro?

Select the correct answer

question mark

¿Cómo se escala un servicio llamado worker a cinco instancias usando Docker Compose?

Select the correct answer

question mark

¿Qué comando usarías para ver los registros en tiempo real de todos los servicios en ejecución en una aplicación Compose?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3
some-alt