Diferencia entre revisiones de «Usuario:ManuelRomero/Docker/dockerComposer»
De WikiEducator
(5 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
{{Usuario:ManuelRomero/Docker/nav}} | {{Usuario:ManuelRomero/Docker/nav}} | ||
<div class="parrafo"> | <div class="parrafo"> | ||
+ | https://iesgn.github.io/curso_docker_2021/sesion5/docker-compose.html | ||
===Docker Compose=== | ===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 <span style='r'>docker-compose.yml</span>. | *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 <span style='r'>docker-compose.yml</span>. | ||
{{Nota|Con docker-compose se pueden definir y ejecutar aplicaciones multi-contenedor en una forma sencilla y ordenada.}} | {{Nota|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 | *El formato del fichero es yaml donde se especifican directivas o variables de la forma | ||
nombre:valor | nombre:valor | ||
Línea 27: | Línea 28: | ||
</source> | </source> | ||
*La primera línea debe de ser la versión que usamos (ver siguiente item) | *La primera línea debe de ser la versión que usamos (ver siguiente item) | ||
− | *La siguiente figura ilustra la agrupación de elementos | + | *La siguiente figura ilustra la agrupación de elementos: |
+ | [[Imagen:fichero_configuracion_1.png]] | ||
+ | |||
+ | |||
+ | |||
+ | *Por lo tanto podemos establcer que tenemos elementos de diferentes niveles, por ejemplo tenemos el elemento <span class="r">services</span>, que especifica que voy a declarar un servicio y dentro de él, habrá directivas para establecer la confugración de dicho servicio como <span class="r">build,image, ports, volume, ...</span> | ||
+ | |||
+ | ===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 <span class="r">version</span> 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/) | ||
+ | <source lang=yaml> | ||
+ | version: '3.9' | ||
+ | #.... | ||
+ | </source> | ||
+ | {{Nota|'''''version''''' debe de ser la primera línea del fichero de configuración }} | ||
+ | ;elementos de primer nivel | ||
+ | |||
+ | |||
+ | |||
</div> | </div> | ||
− |
Última revisión de 11:34 28 ene 2023
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