Docker Compose es una de las herramientas más útiles para desarrolladores y administradores de sistemas. De hecho, la mayorà­a de los puestos de trabajo de TI requieren conocimientos de Docker y Docker Compose. No cabe duda de que saber utilizar estas tecnologà­as supondrá una enorme ventaja para el desarrollo de tu carrera.

¿Qué es Docker Compose?

En pocas palabras, Docker Compose es una herramienta que te permite administrar varios contenedores Docker. ¿Recuerdas los microservicios, es decir, el concepto de subdividir una aplicación web en diferentes servicios? Pues bien, estos servicios se ejecutarán en contenedores individuales que deben administrarse y habilitarse para que puedan comunicarse entre sà­. Docker Compose permite hacer precisamente eso.

Imagina tener una aplicación con varios servicios separados, como por ejemplo, autenticación, registro, etc.

Siguiendo una arquitectura de microservicios, cada elemento se ejecutará en un contenedor separado. Docker Compose simplifica la administración de todos estos contenedores en vez de administrarlos individualmente.

Instalar Docker Compose

Docker Compose es una herramienta oficial de Docker, pero no viene incluida por defecto con la instalación Docker. Por lo tanto, es necesario instalarlo como un paquete aparte. El proceso de instalación de Docker Compose para Windows y Mac está disponible en la página web oficial de Docker.

Para la instalación en Ubuntu, en cambio, basta con iniciar la instalación desde la là­nea de comando:

$ sudo apt-get install docker-compose

Archivo Docker-compose.yaml

No serà­a incorrecto decir que un archivo Docker Compose es para Docker Compose lo que un archivo Docker es para Docker. Dentro del archivo Docker Compose se encuentran todas las instrucciones que Docker Compose ejecuta durante la administración de los contenedores. Aquà­ se definen los servicios que deberán lanzarse en los contenedores. También se definen las redes y volúmenes de los que dependen los servicios.

El archivo Docker Compose usa la sintaxis YAML y debe guardarse como docker-compose.yml. Por ejemplo, podrás disponer de servicios backend, frontend, base de datos y cola de mensajes en una aplicación web. Estos servicios necesitarán dependencias especà­ficas; dependencias como redes, puertos y memoria para un funcionamiento óptimo. Siempre debes tener en cuenta que todo lo necesario para la aplicación completa estará definido en el archivo Docker Compose.

Para un ejemplo concreto de escritura de un archivo Docker compose file puedes consultar este artà­culo.

Comandos Docker Compose

Después de crear un archivo docker-compose.yml, es necesario ejecutar determinados comandos para que funcione.

docker-compose up

Este comando de Docker-compose ayuda a construir la imagen, tras lo cual creará y lanzará los contenedores Docker. Los contenedores provienen de los servicios especificados en el archivo de configuración. Si los contenedores ya se están ejecutando y se ejecuta docker-compose up, el contenedor se creará de nuevo.

docker-compose start

Este comando de Docker Compose inicia los contenedores de Docker, pero no crea imágenes ni crea contenedores; solo inicia los contenedores creados previamente.

docker-compose stop

A menudo es necesario detener los contenedores tras haberlos creado e iniciado. Aquà­ es donde el comando de apagado de Docker Compose resulta útil. Básicamente, este comando detiene los servicios que se están ejecutando, pero los contenedores de instalación y las redes permanecen intactos.

docker-compose down

El comando docker-compose down también detiene los contenedores de Docker al igual que el comando «stop», pero no solo detiene los contenedores, sino que también los elimina. Esto también se aplica a las redes, los volúmenes y las imágenes de Docker que se pueden eliminar si se utilizan ciertos argumentos.

docker-compose down –volumes

Elimina todos los volúmenes.

docker-compose down –rmi all

Elimina todas las imágenes.

Conclusión

No es necesario ser un experto en Docker para utilizar Docker Compose. Si eres principiante, es mejor que intentes escribir un docker-compose.yaml y que pruebes a lanzar dos o más contenedores.

En este artà­culo has aprendido los conceptos básicos de Docker Compose. Ahora ya sabes para qué sirve, cómo configurar un archivo de configuración de Docker Compose y los comandos principales. ¡Es hora de ponerse manos a la obra y probar Docker Compose en la práctica!

Read related articles