[도커] DockerFile HEALTHCHECK란?
- DOCKER
- 2023. 1. 19. 19:46
개요
- 서비스를 Docker 컨테이너로 운영하다 보면, Docker 에서 컨테이너 안의 프로세스가 현재 정상적인지, 아니면 비정상적으로 움직이는지? 확인하고 싶을 경우가 있습니다.
- 이때 유용하게 사용할 수 있는 기능을 Docker 에서는 제공해주고 있습니다.
- HEALTHCHECK 명령어를 통해 Docker 컨테이너의 상태를 체크할 수 있는데요, HEALTHCHECK 에 대해서 알아 보도록 하겠습니다.
HEALTHCHECK 구문
- HEALTHCHECK 구문은, DockerFile 에서 사용합니다.
- 사용 구문은 아래와 같습니다.
HEALTHCHECK [OPTIONS] CMD command --(컨테이너 내부에서 명령을 실행하여 컨테이너 상태 확인)
- 위에서 HEALTHCHECK 명령은 HEALTHCHECK 컨테이너가 여전히 작동하는지 확인하기 위해 컨테이너를 테스트하는 방법을 Docker에 알려줍니다. 이를 통해 웹 서버가 무한 루프에 빠져서 서버 프로세스가 계속 실행 중인데도 새 연결을 처리할 수 없는 경우와 같은 경우를 감지할 수 있습니다.
- 위에서 OPTIONS 에는 아래와 같은 옵션들이 들어갈 수 있습니다.
--interval=DURATION
(기본값: 30s)--timeout=DURATION
(기본값: 30s)--start-period=DURATION
(기본값: 0s)--retries=N
(기본값: 3)
- 위와 같이 옵션들을 추가하여 HealthCheck 를 설정할 수 있습니다.
HEALTHCHECK 상태 값
- HEALTHCHECK 의 상태 값은 크게 3가지 입니다.
starting
: 컨테이너의 초기 상태healthy
: 초기 상태 확인 후, HEALTHCHECK 정상 통과unhealthy
: 초기 상태 확인 후, HEALTHCHECK 통과 실패
HEALTHCHECK 명령의 종료 Return 값
- HEALTHCHECK 명령의 종료 Return 값은 크게 3가지 입니다.
0
: success - the container is healthy and ready for use1
: unhealthy - the container is not working correctly2
: reserved - do not use this exit code
DockerFile 에서 HEALTHCHECK 사용 예제
- HEALTHCHECK 옵션을 DockerFile 에서 사용하려면 아래 옵션을 추가해 주면 됩니다.
HEALTHCHECK --interval=5m --timeout=3s CMD curl -f http://localhost/ || exit 1
- 위 내용은, 예를 들어 5분마다 가동 중인 웹 서버의 메인 페이지(http://localhost/)를 3초 안에 표시할 수 있는지를 확인하는 HEALTHCHECK 옵션을 설정한 것입니다.
728x90
'DOCKER' 카테고리의 다른 글
.NET6 WorkerService 에서 Docker HEALTHCHECK 적용방법 (0) | 2023.01.19 |
---|---|
[Docker] Docker Hub 이미지 Pull denied 에러 (0) | 2022.11.03 |
[Docker] PostgreSQL Docker Compose 파일 작성 (0) | 2022.04.12 |
Docker 네트워크 사용법 (0) | 2022.04.01 |
[Docker] 도커 볼륨 (0) | 2021.11.08 |
이 글을 공유하기