Usuario:ManuelRomero/Docker/dockerComposer

De WikiEducator
Saltar a: navegación, buscar


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