search
top

¿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.

María Morales

María Morales

Practitioner at 233 Grados de TI
Interesada y apasionada en todo aquello que tenga relación con metodologías ágiles y calidad software, gestión de proyectos, modelos de procesos, DevOps y sobre todo en gestión de equipos.

Actualmente, colabora activamente con la Empresa y Comunidad 233, dando formación y mentoring ágil además de organizando eventos, charlas e iniciativas para difundir el conocimiento sobre Ingeniería del Software.

Profesionalmente dedicada al mentoring ágil en 233 Grados de TI, calidad software, testing ágil, a la implantación en importantes organizaciones de Scrum, agilidad, DevOps, Product Owner, peopleware, automatización de pruebas web y móviles con BDD, Calabash.

Certificada por la Scrum Manager como Scrum Manager con credenciales de profesora, entre otras certificaciones, como por ejemplo en GIT y GitHub.
María Morales

Una respuesta to “¿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

Dejar una respuesta

Tu dirección de correo electrónico no será publicada.

top