Herramientas de usuario

Herramientas del sitio


informatica:sistemas_operativos:cursos:healthcheck

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:sistemas_operativos:cursos:healthcheck [2023/10/18 20:12] – [Healthcheck en imágenes] tempwininformatica:sistemas_operativos:cursos:healthcheck [2023/11/16 13:27] (actual) – [Healthcheck en imágenes] tempwin
Línea 10: Línea 10:
  
   * Al construir la imagen   * Al construir la imagen
 +  * Al lanzar un contenedor (docker run)
 +  * En Compose
 +  * Usando otros contenedores
  
 ===== Healthcheck en imágenes ===== ===== Healthcheck en imágenes =====
Línea 24: Línea 27:
 FROM nginx FROM nginx
  
-HEALTHCHECK --interval=30s --tiemout=30s --start-period=5s --retries=3 CMD ["/opt/healthcheck.sh"]+HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 CMD ["/opt/healthcheck.sh"]
 # HEALTHCHECK --interval=10s --timeout=10s --start-period=5s --retries=3 CMD curl -f http://localhost:80 || exit 1 # HEALTHCHECK --interval=10s --timeout=10s --start-period=5s --retries=3 CMD curl -f http://localhost:80 || exit 1
 </code> </code>
Línea 33: Línea 36:
   * ''retries'': número de veces consecutivas que puede fallar la comprobación antes de considerar que el contenedor está en estado //unhealthy//   * ''retries'': número de veces consecutivas que puede fallar la comprobación antes de considerar que el contenedor está en estado //unhealthy//
   * ''CMD'' es lo que ejecutaremos como test / comprobación del estado de salud  del contenedor.   * ''CMD'' es lo que ejecutaremos como test / comprobación del estado de salud  del contenedor.
 +
 +Otra opción:
 +
 +<code>
 +HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
 +    CMD [ $(curl -I -s http://127.0.0.1:8000 | head -n 1 | cut -d' ' -f2 | head -n 1) -eq 200 ] || exit 1
 +</code>
  
 Al ver el estado del contenedor: Al ver el estado del contenedor:
Línea 43: Línea 53:
  
 ===== Docker Compose ===== ===== Docker Compose =====
 +
 +<code yaml>
 +services:
 +  web:
 +    image: nginx
 +    
 +    healthcheck:
 +      interval: 5s
 +      timeout: 5s
 +      start_period: 10s
 +      retries: 3
 +      test: curl -f http://localhost || exit 1
 +</code>
 +
 +===== A través de otro contenedor específico =====
 +
 +Hay contenedores que permiten monitorizar el estado de contenedores y reiniciar aquellos //unhealthy//. Por ejemplo: [[https://hub.docker.com/r/willfarrell/autoheal|Docker Autoheal]]
 +
 +<code>
 +docker run -d \
 +    --name autoheal \
 +    --restart=always \
 +    -e AUTOHEAL_CONTAINER_LABEL=all \
 +    -v /var/run/docker.sock:/var/run/docker.sock \
 +    willfarrell/autoheal
 +</code>
 +
 +Podemos incluirlo en un Compose:
 +
 +<code yaml>
 +services:
 +  web:
 +    image: nginx
 +
 +    # marcamos que queremos que actúe el Auto heal
 +    labels:
 +      - autoheal=true
 +    healthcheck:
 +      interval: 5s
 +      timeout: 5s
 +      start_period: 10s
 +      retries: 3
 +      test: curl -f http://localhost || exit 1
 +
 +  autoheal:
 +    image: willfarrell/autoheal
 +    restart: always
 +    environment:
 +      - AUTOHEAL_CONTAINER_LABEL=all
 +    volumes:
 +      - /var/run/docker.sock:/var/run/docker.sock
 +</code>
informatica/sistemas_operativos/cursos/healthcheck.1697652742.txt.gz · Última modificación: por tempwin