Oh My Algorithm
Concept Guide상태 전이 · create/start/stop

컨테이너 생명주기 (Container Lifecycle)

컨테이너는 만들어졌다가 사라지는 하나의 프로세스이고, 그 사이를 Created·Running·Paused·Exited 상태로 오갑니다. `docker run` 은 사실 create 와 start 를 합친 명령이고, `stop` 은 SIGTERM 을 먼저 보낸 뒤 기다렸다가 SIGKILL 로 강제 종료합니다. 어떤 명령이 어떤 전이를 일으키는지 알면 데이터가 언제 사라지는지도 함께 보입니다.

01 개념 한눈에 보기

Interactive Step-by-Step
컨테이너 생명주기 · 명령과 상태 전이
⌨️docker CLI
docker CLI
📦컨테이너 프로세스
없음
docker create
이미지 → Created
docker start
Created → Running
docker pause
Running → Paused
docker unpause
Paused → Running
docker stop
SIGTERM → 10s → SIGKILL
종료 코드
exit 0 · Exited
docker rm
Exited → 삭제

컨테이너는 결국 하나의 프로세스입니다. 만들어졌다가 사라지기까지 몇 개의 상태를 오갑니다.

Logic Node1 / 10

02 쉽게 이해하기

For Everyone
🔑비유

자동차와 같습니다. 차를 사서 주차장에 두는 것이 create(Created), 시동을 걸면 start(Running), 잠깐 세워두면 pause, 시동을 끄면 stop(Exited)입니다. 폐차(rm)하기 전까지 차는 그대로 남아 있습니다.

💡쉽게 말하면

create 는 이미지로부터 컨테이너를 만들기만 하고 실행하지 않습니다(Created).

start 로 프로세스가 뜨면 Running, stop 은 SIGTERM → (기본 10초 대기) → SIGKILL 순서로 종료해 Exited 가 됩니다.

Exited 상태의 컨테이너는 쓰기 레이어를 그대로 갖고 있어 restart 하면 데이터가 남아 있지만, rm 으로 지우는 순간 그 레이어도 함께 사라집니다.

📍어디에 쓰나
  • graceful shutdown 설계(SIGTERM 핸들링)
  • 종료 코드로 장애 원인 파악
  • 재시작 정책 설정
  • 컨테이너 데이터가 사라지는 시점 이해

03 자주 묻는 질문

FAQ
컨테이너 생명주기 (Container Lifecycle)란 무엇인가요?+

컨테이너는 만들어졌다가 사라지는 하나의 프로세스이고, 그 사이를 Created·Running·Paused·Exited 상태로 오갑니다. `docker run` 은 사실 create 와 start 를 합친 명령이고, `stop` 은 SIGTERM 을 먼저 보낸 뒤 기다렸다가 SIGKILL 로 강제 종료합니다. 어떤 명령이 어떤 전이를 일으키는지 알면 데이터가 언제 사라지는지도 함께 보입니다.

컨테이너 생명주기 (Container Lifecycle)은(는) 어디에 사용하나요?+

graceful shutdown 설계(SIGTERM 핸들링), 종료 코드로 장애 원인 파악, 재시작 정책 설정, 컨테이너 데이터가 사라지는 시점 이해

컨테이너 생명주기 (Container Lifecycle)를 쉽게 비유하면?+

자동차와 같습니다. 차를 사서 주차장에 두는 것이 create(Created), 시동을 걸면 start(Running), 잠깐 세워두면 pause, 시동을 끄면 stop(Exited)입니다. 폐차(rm)하기 전까지 차는 그대로 남아 있습니다.

Guide Progress0%