유데미 강의보는데 헷갈려서 정리
1) 처음에는 그냥 Docker 하나였다
초기에는 컨테이너 = 거의 Docker 였음.
Docker 안에는 사실 여러 기능이 다 들어있었음.
초기
├ 이미지 빌드
├ 이미지 다운로드
├ 컨테이너 실행
├ 네트워크
├ 스토리지
└ API
그래서 쿠버네티스도 처음에는
Docker를 직접 사용했음.
2) 문제 발생
근데 문제가 있었음.
Docker는 너무 큰 프로그램이었음.
쿠버네티스가 원하는 건 사실 딱 하나였음.
컨테이너 실행 ( 컨테이너 : 프로그램 + 실행환경을 묶어서 바로 실행되는 패키지)
컨테이너 중지해줘
컨테이너 상태 알려줘
근데 Docker 전체를 붙여야 했음.
그래서 Kubernetes 팀이 생각함.
"컨테이너 실행하는 표준 인터페이스 만들자"
그래서 나온게 CRI
CRI = Container Runtime Interface
쿠버네티스가 컨테이너 실행할 때 사용하는 표준 API
쿠버네티스
↓
CRI
↓
컨테이너 실행 프로그램
그래서 쿠버네티스는 이제
- Docker
- containerd
- CRI-O
아무거나 사용 가능
Docker 내부를 뜯어보니 containerd가 있었다
재밌는 사실 하나.
Docker 안에는 이미
containerd
라는 컨테이너 실행 엔진이 있었음.
구조
└ containerd
└ runc
그래서 Kubernetes가 말함.
Docker 필요 없고
containerd만 쓰자.
그래서 지금 대부분 쿠버네티스는
containerd 사용
OCI는 또 뭐냐
OCI = Open Container Initiative
👉 컨테이너 표준 규격
누가 만들었냐면
👉 Open Container Initiative
쉽게 말하면
컨테이너 실행 방법 표준
그래서 어떤 런타임이든
- Docker
- containerd
- CRI-O
OCI 규격만 지키면 호환됨
결론적으로 -> 원래 Contianerd 는 도커 안에 있는 컨테이너 실행 도우미 느낌인데 이젠 별개로 설치 가능
+
CRI (Container Runtime Interface) 는
Kubernetes 가 컨테이너 런타임에게 명령하는 표준 규격(API)
즉
컨테이너 실행 프로그램에게 명령하는 표준 말투
'TIL' 카테고리의 다른 글
| 트래픽 몰려도 멀쩡히 웹서버 rollout을 해보자 (0) | 2026.03.13 |
|---|---|
| fcm 알림 흐름 정리 (0) | 2026.03.11 |
| 리눅스 파일 찾을때 명령어 저장 (0) | 2026.03.06 |
| Kubernetes 구성요소 (0) | 2026.03.04 |
| docker compose도 scale out이 된다. (0) | 2026.02.26 |