Skip to main content

Health Check

  • Health Check

Uma verificação de integridade é um mecanismo crucial projetado para avaliar a integridade operacional de contêineres. Ela fornece um meio de verificar se os aplicativos em execução dentro dos contêineres do Docker estão funcionando corretamente. Sem uma verificação de integridade especificada, o Docker não tem a capacidade de determinar autonomamente o status de integridade de um contêiner. Isso se torna especialmente crítico em ambientes de produção onde a confiabilidade e o tempo de atividade são primordiais.

A diretiva HEALTHCHECK no Docker permite que os desenvolvedores definam verificações de integridade personalizadas, normalmente na forma de comandos ou scripts, que inspecionam periodicamente o estado do contêiner e relatam sua integridade. Essa diretiva garante monitoramento proativo e ajuda as ferramentas de orquestração do Docker a tomar decisões informadas sobre o gerenciamento do ciclo de vida do contêiner com base no status de integridade.

Só pode haver uma diretiva HEALTHCHECK em um Dockerfile . Se houver mais de uma diretiva HEALTHCHECK , apenas a última entrará em vigor.

Por exemplo, podemos usar a seguinte diretiva para garantir que o contêiner possa receber tráfego no http://localhost/ponto de extremidade:

HEALTHCHECK CMD curl -f http://localhost/ || exit 1

O código de saída no final do comando anterior é usado para especificar o status de integridade de um contêiner 01são valores válidos para este campo. 0significa um contêiner íntegro, 1significa um contêiner não íntegro.

Ao usar a diretiva HEALTHCHECK no Docker, é possível configurar parâmetros adicionais além do comando básico para personalizar como as verificações de integridade são executadas:

  • -interval

    : Especifica a frequência com que as verificações de integridade são executadas, com um intervalo padrão de 30 segundos.

  • -timeout

    : Define o tempo máximo permitido para que um comando de verificação de integridade seja concluído com sucesso. Se nenhuma resposta bem-sucedida for recebida dentro dessa duração, a verificação de integridade será marcada como falha. O tempo limite padrão também é definido como 30 segundos.

  • -start-period

    : Especifica o atraso inicial antes que o Docker comece a executar a primeira verificação de integridade. Este parâmetro permite que o contêiner tenha algum tempo para inicializar antes que as verificações de integridade comecem, com um período de início padrão de 0 segundos.

  • -retries

    : Define o número de verificações de integridade consecutivas com falha permitidas antes que o Docker considere o contêiner como não íntegro. Por padrão, o Docker permite até 3 tentativas.

No exemplo a seguir, os valores padrão de HEALTHCHECK são substituídos, fornecendo valores personalizados:

HEALTHCHECK \
--interval=1m \
--timeout=2s \
--start-period=2m \
--retries=3 \
CMD curl -f http://localhost/ || exit 1