
Docker와 Containerd는 모두 컨테이너 관리 도구지만 몇 가지 주요 차이점이 존재한다.
Docker는 컨테이너화된 애플리케이션을 생성, 배포, 실행하기 위한 플랫폼으로 이미지 관리와 컨테이너 라이프사이클(생성, 실행, 정지 등)을 쉽게 관리할 수 있다.
반면에 containerd는 보다 저수준의 container runtime으로, Docker와 같은 상위 레벨 툴의 백엔드 역할을 한다.
여기서 런타임(container runtime)은 컨테이너의 생명주기를 관리하는 소프트웨어 컴포넌트로 컨테이너 실행, 중지, 삭제 등을 담당한다.
- 고수준 런타임(High-level runtime) : Docker와 같이 사용자 친화적인 인터페이스를 제공하며, 이미지 관리와 컨테이너 실행을 총괄한다.
- 저수준 런타임(Low-level runtime) : containerd나 runc와 같이 실제로 컨테이너를 실행하는 기능을 제공하며, 보통 고수준 런타임에 의해 호출되어 컨테이너의 실행을 직접 관리한다.