¿Y si queremos orquestar varios contenedores Docker? Microservicios, Docker Compose, Yaml… ¡Qué jaleo! (1/2)

Continuando con los post:

En los que os conté cómo crear y ejecutar imágenes, hoy, derivado de situaciones profesionales en las que lo he visto necesario, he querido escribir sobre cómo orquestar varios contenedores Docker.
¿Cuándo vamos a tener la necesidad de usar varios contenedores Docker? Bien pues, la respuesta es fácil, un ejemplo de usar múltiples contenedores es cuando tenemos aplicaciones distribuidas (ya sabes, una aplicación con distintos componentes que se ejecutan en entornos separados), y queremos desplegar estas aplicaciones distribuidas en cloud.
Para ello, existe como método los microservicios.
Cuando hablamos de microservicios hablamos de dividir los componentes de la aplicación de modo que el servicio que estamos dando es el resultado de la colaboración de pequeñas aplicaciones cuya función está diferenciada. Os dejo un post sobre microservicios
Docker pone a nuestra disposición Docker Compose, una de las muchas herramientas disponibles en el ecosistema de Docker. Docker Compose nos facilita la administración de aplicaciones compuestas por varios contenedores relacionados entre sí, definiendo en un archivo (yaml) los contenedores que forman parte de la aplicación.
Antes de seguir, es importante tener claro qué herramientas ofrece el ecosistema de Docker:

El Ecosistema de Docker

El ecosistema de Docker nos ofrece las siguientes herramientas (las puedes ver con más detalle en la documentación oficial de Docker):

En este post nos vamos a centrar en Docker Compose, vamos a ello.

Una introducción a Docker Compose

Con las aplicaciones distribuidas se pueden usar múltiples contenedores, cada uno de ellos con un servicio diferente, por ejemplo, uno de esos contenedores puede contener una base de datos como postgresql, Cassandra o MySQL, otro contenedor puede contener la aplicación en Java o en Ruby o en cualquier otro lenguaje y otro contenedor que contenga tomcat (veremos un ejemplo en la segunda parte).
Teniendo múltiples contenedores usar el comando $docker run para cada uno de ellos puede ser incómodo. Aquí es donde entra Docker Compose.
Con Docker Compose podemos definir y vincular cada uno de los contenedores que forman una aplicación multicontenedor (aplicación distribuida), y en vez de ejecutar cada contenedor individualmente mediante el comando $docker run, nos facilita un fichero yaml (veremos en la segunda parte del post qué es) que usando el comando $docker-compose up podemos iniciar todos los contenedores y en el orden que los especifiquemos en ese fichero yaml.
Este fichero del que hablo es un archivo descriptor (un fichero yaml, puedes ver aquí más información) de Docker Compose y nos sirve como ya os he comentado para definir, vincular e iniciar los contenedores en un entorno. En este fichero veremos información de la aplicación como imágenes, comandos, volúmenes, links, entre otras propiedades tienen.
Te dejo este enlace a la página oficial de Docker para saber más sobre ello y a la instalación de Docker Compose, y hasta aquí el post de hoy, en el siguiente entraré en más detalle sobre el archivo yaml para orquestar los diferentes contenedores Docker.

Javier Garzás

0 comentarios en “¿Y si queremos orquestar varios contenedores Docker? Microservicios, Docker Compose, Yaml… ¡Qué jaleo! (1/2)”

  1. Interesante línea de artículos estos sobre docker, porque es una herramienta que tiene un potencial enorme para facilitar el disponer de un entorno operativo a los equipos de desarrollo. Sin contar las posibilidades de trasladar esos contenedores a producción.
    No hace ni una semana que subí un video con un ejemplo de un cluster de 3 Elasticsearch, un kibana y un logstash funcionando en docker con docker-compose.
    Tema muy de moda este del docker.
    https://www.youtube.com/watch?v=wBqZJ1QVtI8

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir arriba