Cómo usar Docker Compose para crear y ejecutar aplicaciones multi-contenedor en Docker

Docker Compose es una herramienta para definir y ejecutar aplicaciones Docker de varios contenedores. En otras palabras, si necesitas definir un servicio que requiere más de un contenedor Docker para funcionar, Docker Compose puede ser la herramienta adecuada para ti.

Índice de Contenido
  1. ¿Cómo se utiliza Docker Compose?
  2. Lo que necesitas
  3. ¿Cómo funciona Docker Compose?
  4. El archivo docker-compose.yml
  5. Construyendo con Docker Compose

¿Cómo se utiliza Docker Compose?

Una vez que hayas instalado Docker Compose y el demonio de Docker, ¿cómo despliegas esas aplicaciones en contenedores? Docker Compose depende del archivo docker-compose.yml (que, a su vez, puede funcionar en conjunto con el probado y verdadero Dockerfile).

Voy a explicarlo de la manera más sencilla posible, para que entiendas cómo crear tu propio archivo básico de Docker Compose.

Lo que necesitas

Lo único que necesitarás es:

  • Un servidor con una instancia en ejecución de Docker y docker-compose.
  • Un usuario que pertenezca al grupo "docker".

¿Cómo funciona Docker Compose?

En pocas palabras, Docker Compose construye una pila de aplicaciones para ejecutar un servicio completo. El archivo docker-compose.yml se divide en secciones, cada sección representa un solo contenedor que, combinado con los otros contenedores, crea el servicio. Por ejemplo, podrías tener un archivo docker-compose.yml que consta de dos secciones:

  • web - la parte del servidor web de la aplicación.
  • db - la parte del servidor de base de datos de la aplicación.

Cada sección puede estar compuesta por diferentes componentes. Y debido a que es posible que necesites ser bastante específico con la sección web, podrías indicarle a docker-compose que la parte web se definirá en el Dockerfile (dejaremos eso para otro how-to). De hecho, con docker-compose, puedes incluir múltiples Dockerfiles para construir stacks muy complejos. Sin embargo, vamos a construir un stack bastante simple para que puedas comenzar fácilmente.

Los diferentes tipos de buses en los dispositivos electrónicos

Entonces, vamos a crear este archivo docker-compose.yml con las secciones web y db. Utilizaremos NGINX y MySQL para crear un stack que se pueda utilizar fácilmente con fines de desarrollo.

El archivo docker-compose.yml

Lo primero que debemos hacer es crear un archivo nuevo. Crearemos ese archivo dentro de un directorio recién creado. Ejecuta el comando mkdir ~/docker-build. Cambia al directorio recién creado con el comando cd ~/docker-build. Una vez dentro de ese directorio, crea el nuevo archivo docker-compose.yml con el siguiente comando:

nano docker-compose.yml

Recuerda, este es un archivo YAML, por lo que el formato debe ser consistente (de lo contrario, el build fallará).

Lo primero que debes hacer es agregar el encabezado del archivo. En la parte superior del archivo, agrega lo siguiente:

version: '3'

Cómo entrar al programa de configuración del BIOS en tu computadora

Esto indica a Docker Compose que estamos utilizando la versión 3 de la herramienta. La línea siguiente indicará a Docker Compose que lo que sigue serán los servicios a desplegar. Se define con:

services:

Hasta ahora, el archivo es:

version: '3'
services:

Nuestra primera sección a definir será la parte web del stack. Podemos hacer esto con dos simples líneas:

web:
image: nginx

Entendiendo los permisos de archivos y directorios en UNIX

Lo que se hace arriba es indicarle a Docker Compose que despliegue un contenedor utilizando la imagen oficial de nginx. No estamos haciendo nada especial para este contenedor. Es básico.

Nuestra siguiente sección definirá la base de datos. Esta sección se vuelve un poco más complicada, ya que debemos configurar los parámetros necesarios para que la base de datos funcione. Comenzamos definiendo la sección:

db:

Luego, indicamos a Docker Compose que utilice la imagen de mysql para la base de datos:

image: mysql

Ahora definimos los puertos externos e internos que se utilizarán para la base de datos. Para esto, utilizaremos los puertos predeterminados de MySQL y los definiremos de la siguiente manera:

Cómo recuperar una contraseña de BIOS perdida: dos métodos efectivos

ports:
- "3306:3306"

Finalmente, configuramos el entorno de la base de datos. El entorno será la configuración de opciones para la base de datos (contraseñas, usuarios, nombre de la base de datos). Esta sección se ve así:

environment:
- MYSQL_ROOT_PASSWORD=contraseña1
- MYSQL_USER=usuario
- MYSQL_PASSWORD=contraseña2
- MYSQL_DATABASE=basedatos

Donde:

  • contraseña1 es la contraseña para el usuario administrador de MySQL.
  • usuario es un nuevo usuario de MySQL.
  • contraseña2 es la contraseña para el nuevo usuario de MySQL.
  • basedatos es el nombre de la base de datos que se utilizará.

Cada uno de los valores anteriores será definido por ti. Asegúrate de utilizar contraseñas fuertes y únicas, para mantener tu stack seguro.

Al unir este archivo, se ve así:

Cómo funciona y cómo probar una fuente de alimentación para PC

version: '3'
services:
web:
image: nginx
db:
image: mysql
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=contraseña1
- MYSQL_USER=usuario
- MYSQL_PASSWORD=contraseña2
- MYSQL_DATABASE=basedatos

Recuerda que la estructura del archivo debe ser consistente, así que indentación correctamente.

Guarda y cierra ese archivo.

Construyendo con Docker Compose

Ahora que tenemos nuestro archivo docker-compose.yml construido, es hora de construir la aplicación. Como esta es una aplicación muy simple, básicamente desplegará dos contenedores: el servidor web y la base de datos. Cómo utilizas esos dos contenedores depende de ti. Por supuesto, podrías desarrollar tus propias imágenes para usar en esto (por ejemplo, imágenes personalizadas de NGINX y MySQL que funcionen perfectamente juntas para crear un servicio o aplicación única). En nuestro caso, simplemente estamos utilizando las imágenes predeterminadas (por el bien de la demostración).

Entonces ahora, para construir el stack, regresa a la ventana de la terminal, asegúrate de estar en tu directorio de build y ejecuta el comando:

docker-compose up

Cómo diagnosticar y reemplazar una fuente de alimentación defectuosa en tu PC

El comando anterior desplegará tanto los contenedores web como de la base de datos. Si solo ejecutas ese comando, los contenedores se desplegarán en modo adjunto, por lo que no recuperarás tu indicador de bash. Si deseas ejecutarlos en modo desacoplado, debes usar el comando:

docker-compose up -d

Una vez que se complete la ejecución, verás los IDs de los contenedores listados (Figura A).

Para asegurarte de que los contenedores estén en ejecución, ejecuta el comando:

docker-compose ps

Cómo reemplazar un fusible de la fuente de alimentación y ahorrar dinero

Verás el nombre del contenedor, el comando, el estado y los puertos listados (Figura B).

Felicidades, acabas de desplegar tu primer "stack" de contenedores utilizando Docker Compose. Sí, este es un ejemplo increíblemente simple, pero es uno que te pondrá en marcha hacia un viaje muy largo y gratificante. La próxima vez, crearemos un archivo docker-compose.yml más complicado, que funcione en conjunto con un Dockerfile.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Centros de Datos, allí encontraras muchos artículos similares a Cómo usar Docker Compose para crear y ejecutar aplicaciones multi-contenedor en Docker , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.