Profile picture

[k8s] 컨테이너 런타임 docker와 containerd의 차이

JaehyoJJAng2023년 03월 06일

▶︎ Docker

도커는 컨테이너 런타임을 포함한 종합적인 컨테이너 플랫폼으로,

컨테이너 생성, 관리, 배포, 저장소 관리 등의 기능을 통합적으로 제공합니다.


▶︎ containerd

containerd는 도커에서 분리된 컨테이너 런타임 입니다.

컨테이너 런타임은 도커의 핵심 컴포넌트 중 하나이며, 컨테이너 생애주기 관리와 이미지 관리를 담당합니다.

containerd는 컨테이너를 시작하고 종료하는데 필요한 핵심 동작을 담당하며, 도커외 다른 컨테이너 관리 도구에서도 사용할 수 있습니다.


▶︎ k8s에서 런타임으로 사용될 때 차이

k8s의 컨테이너 런타임으로 도커를 사용하는 것과 분리된 containerd를 사용하는 것에는 차이가 있습니다.


‣ containerd

containerd를 사용하는 경우에는 각 pods를 보는 명령어를 실행했을 때,

containerd가 중지된 상태에서도 확인이 가능합니다. (다른 삭제나 생성 등의 명령어도 정상적으로 동작합니다.)

즉, API 서버가 정상적으로 동작합니다.

kubectl stop containerd
kubectl get pods

‣ docker

하지만, 컨테이너 런타임으로 도커를 사용중이라면 도커를 중지시킨 후,

pods 명령어를 치더라도 API 서버로 명령어가 도달하지 못하기에 출력되지 않습니다.

systemctl stop docker
kubectl get pods

Loading script...