Docker 컨테이너 모니터링 — 재시작·중단 자동 감지
최종 업데이트: 2026-06-27
컨테이너는 죽어도 restart 정책에 따라 조용히 다시 떠서, 문제가 겉으로 잘 드러나지 않습니다. 특히 재시작 루프(crash → restart → crash 반복)는 서비스가 되는 듯 안 되는 애매한 상태를 만듭니다.
봐야 할 지표
- 실행/중단 컨테이너 수: 중단이 갑자기 늘면 배포 문제나 연쇄 장애의 신호.
- 컨테이너별 재시작 횟수: 재시작이 계속 쌓이면 크래시 루프입니다.
- 호스트 자원: 컨테이너는 호스트 메모리 부족으로 OOM-kill 되는 경우가 많아, 호스트 메모리를 함께 봐야 원인이 보입니다.
빠른 점검
docker ps -a # 전체·중단 컨테이너 docker inspect <name> | grep RestartCount # 재시작 횟수 dmesg | grep -i oom # OOM 여부
재시작 루프의 흔한 원인
- OOM: 메모리 한도를 넘겨 커널이 컨테이너를 죽이고, 다시 떠도 또 넘겨 반복됩니다.
- 의존성 미준비: DB 등 의존 서비스가 아직 안 떠서 앱이 죽고 재시작합니다.
- 헬스체크 실패: 앱은 떴는데 헬스체크 조건이 너무 빡빡해 계속 unhealthy 판정.
Sentibel로 보면
Sentibel은 /var/run/docker.sock으로 전체·실행·중단 컨테이너 수와 컨테이너별 재시작 횟수를 수집하고, 재시작이 임계값을 넘으면 알림합니다. Docker 소켓이 없는 서버에서는 자동으로 비활성화됩니다. 컨테이너 재시작을 같은 호스트의 메모리(OOM)·CPU와 한 타임라인에서 봐, "재시작 루프가 메모리 부족 때문인지"를 바로 가립니다. 설치 시 에이전트가 docker 그룹에 추가돼 별도 설정이 필요 없습니다.