Diferencia entre revisiones de «Usuario:ManuelRomero/Docker/dockerComposer»

De WikiEducator
Saltar a: navegación, buscar
 
(6 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===
+
===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 26: Línea 27:
 
   db_data:
 
   db_data:
 
</source>
 
</source>
 +
*La primera línea debe de ser la versión que usamos (ver siguiente item)
 +
*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.

(Comment.gif: 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:

Fichero configuracion 1.png


  • 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'
#....

(Comment.gif: version debe de ser la primera línea del fichero de configuración )


elementos de primer nivel