Docker compose
Si quiero desarrollar una aplicación web, puedo necesitar tener en el sistema:
- Un servidor web: p.e apache
- Un intérprete de código: p.e php
- Un servidor de bases de datos: p.e mysql
- Una herramienta para gestionar: p.e phpmyadmin
Ante esta situación qué hacemos
* Podría tener un contenedor con todos los servicios.
* Pero vaya lío tener todo en un contenedor
* ¿Podría tener un contenedor con cada servicio?
- Docker compose me va a permitir especificar en un fichero los servicios que necesito
- Va a crear un contenedor por cada servicio
- Va a crear una red interna para que dichos servicios se vean entre sí
- Me va a permitir, mediante comandos poder gestionar todos los servicios de manera individual
- Todo centralizado en un comando de docker : compose.
- Evitamos tener que tener varios ficheros Dockerfile y gestionarlos uno por uno para que se ejecuten .
- La ejecución de docker-compose va a generar contenedores con servicios.
Fichero de configuración
-
Es un fichero llamado docker-compose.yaml o (docker-compose.yml)
- yaml o yml es un tipo de fichero de declarativo , cuya configuracioń y sintaxis es muy sencilla. yaml viene de YAML Ain’t Markdown Language (Yaml no es un lenguaje de marcado) especificando que no es como XML o HTML:
* Tiene en cuenta la indentación creando bloques . *Asigno valores a variables utilizando : (dos puntos), debiendo de haber una separación entre los dos puntos y el valor
- Para crear listas usa los guiones
Es un fichero muy fácil de entender
Creando el fichero
1.- Vamos a ver la construcción del fichero
docker-compose.yaml
.
2.- Posteriormente veremos cómo
ejecutar el fichero
y construir nuestro
entorno de desarrollo
.
Sintaxis del fichero
El fichero docker-compose va a tener opciones de configuración que podemos jerarquizar
Es un fichero de configuración con formato yaml
Tema 3: Docker Compose
Docker Compose
es una herramienta que permite definir y ejecutar aplicaciones multicontenedor con un archivo de configuración llamado docker-compose.yml.
Introducción a Docker Compose
Beneficios de Docker Compose
Ventajas de Docker Compose
- Facilita la creación y gestión de entornos complejos.
- Centraliza la configuración de varios contenedores en un único archivo.
- Automatiza la creación de redes internas para la comunicación entre servicios.
- Simplifica la administración de contenedores relacionados.
¿Cómo funciona Docker Compose?
Docker Compose utiliza un archivo docker-compose.yml para definir servicios, redes y volúmenes necesarios para una aplicación.
services:
web:
image: nginx:latest
ports:
- "8080:80"
db:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD: example
- MYSQL_DATABASE: test
Sintaxis del archivo YAML
El archivo docker-compose.yml utiliza la sintaxis YAML, la cual es declarativa y fácil de entender.
Características de YAML
- La indentación establece la agrupación.
- Se usan dos puntos
:para asignar valores a variables. - Para crear listas, se emplean guiones
-.
Ejemplo de sintaxis básica en YAML:
|
|
Opciones principales del archivo docker-compose.yml
- services: Define los contenedores que forman parte de la aplicación.
- volumes: Especifica volúmenes para persistir datos.
- networks: Configura redes internas para los servicios.
Ejemplo práctico: Servidor web y base de datos
Creamos una configuración para un servidor web con Nginx y una base de datos MySQL.
|
|
Ejecución:
-
Levantar los servicios:
1docker compose up -d -
Verificar contenedores activos:
1docker compose ps -
Detener los servicios:
1docker compose down