반응형
Docker로 작업을 할 때 테스트, 디버깅 등의 목적으로 컨테이너 실행 상태를 유지하고 싶을 때가 있는데 어떻게 하는지 알아본다.
기본적으로 컨테이너는 내부 프로세스가 종료가 되면 컨테이너도 종료가 된다. 이는 컨테이너 프로세스를 백그라운드가 아닌 포그라운드로 실행을 하는 이유이기도 하다.
아래를 보면 기본 ubuntu이미지를 실행하고 docker 프로세스를 조회해보면 STATUS는 종료됐다고 나온다
docker run -d ubuntu
테스트나 디버깅을 목적으로 컨테이너에 접속해서 뭔가를 하고 싶은데 컨테이너는 종료가 된 상태이다.
다음과 같이 "-t" 옵션과 함께 실행을 하면 컨테이너를 실행상태로 유지를 할 수 있다.
docker run -d -t ubuntu
컨테이너가 실행상태를 유지하고 컨테이너로 접속 할 수 있다.
위의 방법 외에 다른 방법들도 있는데 아래와 같다.
docker run -d ubuntu tail -f /dev/null
docker run -d ubuntu sleep infinity
Dockerfile 작성 중에 실행 상태를 유지하고 싶다면 ENTRYPOINT에 "tail -f /dev/null" 명령을 주고 실행하면 된다
FROM ubuntu:latest
...
ENTRYPOINT ["tail", "-f", "/dev/null"]
반응형
'개발 > Docker&kubernetes' 카테고리의 다른 글
K3s 인증서 갱신(certificate has expired or is not yet valid) (0) | 2023.01.15 |
---|---|
Docker Multi Application(여러 어플리케이션) 실행 (0) | 2022.09.06 |
Docker Nginx Simple 컨테이너 생성 (0) | 2022.08.26 |
Docker 컨테이너 apt-get install Unable to locate package 에러 (0) | 2022.08.26 |
Kubernetes pod pending FailedScheduling - n node(s) had taints that the pod didn't tolerate (0) | 2022.04.26 |
댓글