본문 바로가기
Docker

[Docker] Docker 컨테이너 종료 문제와 디버깅 방법

by 괘발자 2025. 5. 8.

다음은 OpenJDK 17 이미지를 기반으로 작성된 Dockerfile이다.

// 수정 전 Dockerfile
FROM openjdk:17-jdk

 

위 도커 파일을 다음 명령어를 통해 빌드 후, 컨테이너를 실행한다.

// docker build -t <이미지명> <도커파일 경로>
docker build -t test .

docker run -d test

 

 

컨테이너를 실행한 후, 컨테이너 내부로 접근하기 위해 다음 명령어를 입력한다.

// docker exec -it <컨테이너명>
docker exec -it test

 

해당 명령어를 실행하면 다음 에러가 발생한다.

 

그 이유는 컨테이너 특성상 명령어 처리가 끝나는대로 컨테이너가 종료되기 때문이다.

 

그러다보니 내부적으로 어떻게 컨테이너가 형성되었는지 디버깅에 어려움을 겪게 된다.

이 경우, 다음 방법을 통해 일시적으로 해결할 수 있다.

 

해결 방법

Dockerfile에 다음 명령어를 추가한 후, 다시 이미지를 빌드하고 컨테이너를 실행한다.

// 수정 후 Dockerfile
FROM openjdk:17-jdk
...
ENTRYPOINT ["/bin/bash", "-c", "sleep 500"] # 500초 동안 시스템을 일시정지 시키는 명령어

 

그런 다음, docker exec -it 명령어를 통해 컨테이너 내부로 직접 이동하여 디버깅을 하면 된다.

'Docker' 카테고리의 다른 글

[Docker] COPY : 파일 복사  (1) 2025.05.08
[Docker] 도커 볼륨(Docker Volume)  (3) 2025.05.07