Docker compose
Last updated
Was this helpful?
Last updated
Was this helpful?
Se trata de una utilidad de Docker que nos ayuda a la hora de crear múltiples contenedores Docker al mismo tiempo. Esto es, una herramienta que facilita la orquestación
local de contenedores, con el objetivo de definir y ejecutar aplicaciones Docker de varios contenedores de forma fácil y rápida.
Esta definición y orquestación se lleva a cabo de forma local en el interior de los contenedores, que se encuentran unidos a través de una .
A diferencia de Docker Cli
éste no hay que crearlo directamente en la terminal, sino que se crea un archivo YAML
que es más fácil de ser modificado y configurado que en la propia terminal.
Este tipo de ficheros .yml
nos sirven para definir la configuración de la aplicación en cuestión. De esta manera podemos, con un solo comando, crear e iniciar los servicios configurados en estos archivos.
Uno de los aspectos a tener en cuenta es establecer los servicios que componen las aplicación en un fichero -compose.yml
, para que se pueda utilizar en un entorno aislado y así, una vez creado, solo se tiene que ejecutar un comando por terminal que comprobará el archivo e instalará y configurará lo que le hemos descrito en el mismo.
Una característica del Docker Compose estriba en su capacidad para contener diversos entornos dentro de una misma máquina de host, así como su capacidad de mantener y preservar datos de volumen una vez se crean los diferentes contenedores.
Veamos algunas de sus características:
Multiplicidad de entornos en un solo host. La posibilidad de utilizar un nombre
(de proyecto), para aislar los entornos entre sí. Dicho nombre se puede utilizar en un host de desarrollo para crear diversas copias de un mismo entorno.
Conservar los datos de volumen. Permite la preservación de la información de volumen en los casos donde los contenedores se crean en el sistema; es decir, puede conservar la totalidad de los volúmenes de sus servicios.
Recrear contendores que hayan sido modificados. Almacena en caché toda la información relacionada con los ajustes y configuraciones usados para crear un contenedor. En los casos donde un servicio que no ha cambiado se reinicia, Compose se encarga de reutilizar los contenedores que ya existen. Esto posibilita que el sistema pueda llevar a cabo cambios dentro de su entorno de forma muy rápida.
Algunos comandos que nos pueden ser útiles a la hora de manipular los contenedores descritosen un archivo de docker-compose.yml
docker-compose up:
Crea los contenedores (servicios) que están descritos en el docker-compose.yml
.
docker-compose up -d
: Crea en modo detach los contenedores (servicios) que están descritos en el docker-compose.yml y no muestra mensajes de log en el terminal y se vuelve a mostrar un prompt.
docker-compose stop
: Detiene los contenedores que previamente se han lanzado con docker-compose up.
docker-compose run
: Inicia los contenedores descritos en el docker-compose.yml que estén detenidos.
docker-compose rm
: Borra los contenedores detenidos. La opción -f elimina también los contenedores en ejecución.
docker-compose build:
buscará el archivo docker-compose.yml
en la carpeta actual, ejecuta el proceso de construcción de la imagen y desplegará los contenedores que estén indicados.
docker-compose down
: Detiene los contenedores, los borra y también elimina las redes que se han creado con docker-compose up (en caso de haberse creado).
docker-compose down -v
: Para los contenedores y borra contenedores, redes y volúmenes.
docker-compose logs
: Muestra los logs de todos los servicios del escenario. Si utilizamos el parámetro -f
podemos ver los logs en “vivo”.
docker-compose logs servicio_1
: Muestra los logs del servicio llamado servicio_1 que estaba descrito en el docker-compose.yml.
docker-compose exec servicio_1 /bin/bash
: Ejecuta una orden, en este caso /bin/bash en un contenedor llamado servicio_1 que estaba descrito en el docker-compose.yml.