Usuario:ManuelRomero/Docker/dockerComposer
De WikiEducator
https://iesgn.github.io/curso_docker_2021/sesion5/docker-compose.html
Docker Compose
- Es una aplicación o herramienta que voy a ejectuar para gestionar un sistema dockerizado, es decir, nos va a permitir ejecutar una aplicación usando varios contenedores relacionados entre sí, describiéndolo en un fichero de configuración llamado docker-compose.yml.
(: Con docker-compose se pueden definir y ejecutar aplicaciones multi-contenedor en una forma sencilla y ordenada.)
Fichero de configuración : docker-compose.yml
- El formato del fichero es yaml donde se especifican directivas o variables de la forma
nombre:valor
- En este fichero la indentación es importante lo que establece una jerarquía en los elementos (qué elemento es hijo de cuál otro)
version: '3.7' services: db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: example volumes: - db_data:/var/lib/mysql web: build: . ports: - "80:80" depends_on: - db volumes: db_data:
- La primera línea debe de ser la versión que usamos (ver siguiente item)
- La siguiente figura ilustra la agrupación de elementos:
- Por lo tanto podemos establcer que tenemos elementos de diferentes niveles, por ejemplo tenemos el elemento services, que especifica que voy a declarar un servicio y dentro de él, habrá directivas para establecer la confugración de dicho servicio como build,image, ports, volume, ...
Sintaxis
- En el primer nivel las principales directivas que podemos tener son:
- 1.-version: especifica la versión de la sintaxis utilizada en el archivo de configuración.
- 2.-services: define los contenedores que se deben ejecutar como parte de la aplicación.
- 3.-volumes: define los volúmenes utilizados por los contenedores.
- 4.-networks: define las redes utilizadas por los contenedores.
- 5.-configs: define los archivos de configuración que se deben utilizar para la aplicación.
- 6.-secrets: define los secretos que se deben utilizar para la aplicación.
- 7.-x: es una extensión que se puede usar para añadir cualquier opción personalizada, estas son específicas para cada proyecto.
- version
- La primera línea es la versión version de docker-composer que usamos
- Las versiones suelen ser compatibles con versiones anteriores y pueden añadir nuevas funcionalidades (revisar documentación).ç
- Una versión de docker-compose soporta una determinada versión de docker (https://docs.docker.com/compose/compose-file/compose-versioning/)
version: '3.9' #....
(: version debe de ser la primera línea del fichero de configuración )
- elementos de primer nivel