컨테이너·워크플로우 자동화/DocKer 기본 및 활용

Docker 컨테이너가 즉시 종료되는 이유와 디버깅을 위한 ENTRYPOINT 활용 방법

Data Jun 2026. 2. 17. 21:40

Docker 컨테이너는 실행할 메인 프로세스가 종료되면 함께 종료됩니다.

 

예를 들어:

ENTRYPOINT ["python", "main.py"]

이때 main.py 실행이 끝나면 컨테이너도 바로 종료됩니다.

 

그래서 문제가 발생합니다.

컨테이너가 즉시 꺼지면 docker logs나 docker exec로 내부 상태를 확인하기 어렵습니다.

 

1. 왜 컨테이너는 바로 종료될까?

Docker는 “하나의 메인 프로세스” 중심 구조입니다.

  • 메인 프로세스 실행
  • 프로세스 종료
  • 컨테이너 종료

즉, 컨테이너는 서비스가 아니라 프로세스 실행 단위입니다

 

2. 디버깅을 위한 방법 

문제 상황을 확인하려면 컨테이너를 잠시 유지해야 합니다.

 

예:

ENTRYPOINT ["/bin/bash", "-c", "sleep 600"]

의미는:

  • bash 실행
  • 600초(10분) 동안 대기
  • 그동안 컨테이너 유지

이제 다음이 가능합니다.

docker logs <container>
docker exec -it <container> /bin/bash

컨테이너 내부로 들어가 직접 확인할 수 있습니다.

 

3. 왜 이런 방식이 필요한가?

빌드 오류, 환경 변수 문제, 파일 경로 오류 등은
컨테이너 내부에서 직접 확인하는 것이 가장 빠릅니다.

 

sleep은 일종의 “임시 유지 장치” 역할을 합니다.

 

4. 정리

 

  • 컨테이너는 메인 프로세스가 끝나면 종료됨
  • 실행 명령이 없으면 즉시 종료
  • 디버깅 시 sleep으로 컨테이너 유지 가능
  • 유지 상태에서 logs와 exec로 확인

Docker 컨테이너는 메인 프로세스 종료 시 함께 종료되므로, 디버깅 시 sleep을 활용해 일시적으로 유지할 수 있습니다.