[CKAD] Docker-vs-ContainerD

HongSeokChoi·2025년 8월 27일

ckad

목록 보기
1/14
post-thumbnail

Docker vs containerd

1. 개요

  • Docker : 빌드, 실행, 관리까지 포함한 올인원(All-in-one) 컨테이너 플랫폼
  • containerd : 컨테이너 실행에만 집중한 경량 런타임

2. 비교

구분Dockercontainerd
성격올인원 컨테이너 플랫폼 (빌드+실행+관리)경량 컨테이너 런타임
역할개발부터 배포까지 전체 워크플로우 제공컨테이너 실행에만 집중
Kubernetes 지원v1.24부터 공식 지원 종료 (dockershim 제거)CRI 호환, 기본 런타임
현재 위치로컬 개발/빌드에 여전히 많이 사용운영환경, Kubernetes 표준 런타임

3. Docker의 등장과 한계

  • 등장 배경 : 기존 컨테이너 기술을 CLI와 API로 쉽게 다룰 수 있게 하여 대중화
  • 한계 : 단순 런타임이 아닌 종합 툴로 구성 → Kubernetes 입장에서는 불필요한 부분까지 포함해야 했음

4. containerd와 CRI

  • CRI (Container Runtime Interface) : Kubernetes와 런타임을 연결하는 표준 인터페이스
  • OCI (Open Container Initiative) : 컨테이너 업계의 표준 규격
    • Image Spec : 이미지 빌드 형식 정의
    • Runtime Spec : 컨테이너 실행 규칙 정의

containerd

  • 원래 Docker의 런타임 부분 → CNCF 독립 프로젝트로 발전
  • CRI 호환, Kubernetes와 직접 연동 가능
  • Docker 설치 없이도 containerd만으로 컨테이너 실행 가능

5. Docker 지원 중단

  • Docker는 CRI를 지원하지 않음 → Kubernetes가 중간 계층(dockershim)을 둬야 했음
  • 유지 부담 증가로 Kubernetes v1.24부터 공식 제거
  • 중요 : 기존 Docker 이미지들은 OCI 표준을 따르므로 문제없이 실행 가능

6. containerd의 현재 위치

  • Kubernetes에서 가장 널리 쓰이는 기본 런타임
  • CNCF 프로젝트로 졸업 → 안정성과 지원 보장
  • Docker 없이도 운영 환경 구축 가능

7. containerd CLI 도구

① ctr

  • containerd 기본 제공 CLI
  • 기능 제한적, 주로 디버깅용

② nerdctl

  • Docker CLI와 거의 동일한 사용법
  • 예시
    docker run -d -p 8080:80 nginx
    nerdctl run -d -p 8080:80 nginx
profile
Network/Cloud

0개의 댓글