Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Següent revisió
Revisió prèvia
info:cursos:altran:docker:compose [19/07/2018 07:59] – creat mateinfo:cursos:altran:docker:compose [01/08/2022 00:09] (actual) – [composer] mate
Línia 1: Línia 1:
-composer+docker-compose
 gestor de despliegue de contenedores gestor de despliegue de contenedores
  
Línia 32: Línia 32:
  
 == docker-compose.yml == docker-compose.yml
 +<sxh yaml>
 +version:'3.6'
 +services:
 +  webapp:
 +    image: httpd:alpine
 +  bd:
 +    image: mongo
 +</sxh>
 +
 +== ejecución
 +<code bash>
 +# lanza (previa descarga si no estuviese) los contenedores indicados en el .yml
 +docker-compose up
 +
 +# en modo detach
 +docker-compose up -d
 +</code>
 +
 +== comandos
 +  * ''docker-compose ps'' : solo muestra los contenedores gestionados por docker-compose (y no todos como lo haríamos a través de ''docker ps'')
 +  * ''docker-compose ps --services'' : lista los "servicios" definidos en el .yml
 +  * ''docker-compose logs''
 +    * ''-f'' : actualización continua
 +    * ''<servicios>'' : filtra por servicio (contenedor)... me es igual como se llamen los contenedores
 +  * ''docker-compose stop'' : para todos los servicios definidos en .yml
 +    * ''<servicios>'' : solo para ese servicio
 +
 +== más docker-compose.yml
 +<sxh yaml>
 +version:'3.6'
 +services:
 +  webapp:
 +    image: httpd:alpine
 +    depends_on: bd
 +  bd:
 +    image: mongo
 +</sxh>
 +
 +esto nos asegura que se lanzará primerdo **bd**, pero igual no con la suficiente cantidad de tiempo
 +
 +<sxh yaml; title: ejemplo elasticsearch+kibana>
 +version: '3.6'
 +
 +services:
 +
 +  elasticsearch:
 +    image: elasticsearch
 +
 +  kibana:
 +    image: kibana
 +    ports:
 +      - 5601:5601
 +
 +</sxh>
 +
 +== comandos
 +  * ''docker-compose start'' : idem up
 +  * ''docker-compose down'' : elimina todo lo relacionado con el .yaml -> containers, volúmenes, redes...
 +  * ''docker-compose config'' : verifica el fichero .yml
 +    * ''-q'' : poco verboso
 +    * ''--services'' : muestra servicios
 +    * ''--volumes'' : muestra volúmenes
 +  * ''docker-compose exec <service> <comando>'' : conexión al contenedor <service>
 +    * ''docker run -it <service> <comando>''
 +  * ''docker-compose images''
 +    * ''-q''
 +
 +== docker-compose.yml
 +se puede modificar el fichero mientras están los contenedores, aunque no le gusta si se tocan volumenes... mejor parar y volver a lanzarlo. Se puede dar el caso que no permita, a través de docker-compose, parar o modificar los contenedores en ejecución
 +
 +<sxh yaml ejemplo de construcción automática >
 +version:'3.6'
 +services:
 +  webapp:
 +    build: path_to_Dockerfile
 +  bd:
 +    image: mongo
 +</sxh>
 +
 +<callout type="warning" title="re-builds" icon="true">si modificamos el Dockerfile, deberemos usar ''docker-compose up --build'' para recrear la imagen. Si docker-compose tiene las imágenes creadas, no las re-creará</callout>
 +
 +<callout type="danger" title="refactor" icon="true">hay que mirar los apuntes de Dani para completar corretamente este apartado</callout>
 +
 +<sxh yaml ejemplo de construcción automática >
 +version:'3.6'
 +services:
 +  webapp:
 +    build:
 +      context: .
 +      ¿file?: Dockerfile
 +    environment:  # mapa o lista
 +      - ENTORNO=pre
 +    env_file:
 +      - ./.env
 +      - ./common.env
 +    labels:
 +      VERSION: 1
 +    restart: always
 +    links: # deprecated -> para reconocimiento de equipos en la red default 
 +    external_links # está en otro "docker-composer"
 +    networks: # las gestiona docker-composer, pero si si aún así necesitamos una
 +      - app
 +  bd:
 +    image: mongo
 +  networks:
 +    app:
 +      external:
 +        name: 
 +</sxh>
 +
 +<sxh yaml; title:fichero configuración variables entorno>
 +  CLAVE=VALOR
 +</sxh>
 +
 +
 +
 +
 +
  • info/cursos/altran/docker/compose.1532012377.txt.gz
  • Darrera modificació: 19/07/2018 07:59
  • per mate