Docker 이미지와 containerd 이미지는 OCI(Open Container Initiative) 표준을 공유하므로 대부분 호환되지만, 런타임 환경과 관리 도구에서 차이가 있습니다. Docker 이미지는 Docker의 모든 기능을 갖춘 CLI를 통해 빌드 및 관리되는 반면, containerd 이미지는 Kubernetes 환경에서 경량 런타임 작업에 초점을 맞춥니다. Docker의 핵심 구성 요소인 containerd는 효율성을 위해 Docker의 고수준 기능을 제거합니다.
주요 건축적 차이점
Containerd는 Docker의 광범위한 스택에 비해 구성 요소가 적어 리소스 오버헤드가 적고 안정성이 향상된 데몬으로 작동합니다. Docker는 containerd 위에 빌드, 푸시 및 네트워킹 도구를 제공하여 개발 및 독립 실행형 사용에 적합한 반면, containerd는 오케스트레이션을 위해 CRI(컨테이너 런타임 인터페이스) 규정 준수를 우선시합니다. 둘 다 계층형 파일 시스템 형식을 사용하지만, Docker는 Dockerfile을 이용한 이미지 빌드와 같은 편의 기능을 추가합니다.
명령어 비교
관리 명령어는 사용 편의성 측면에서 매우 다양합니다.
| 작업 | 도커 명령어 | 컨테이너 명령어(crictl/ctr) |
|---|---|---|
| 이미지 목록 | docker images |
crictl images |
| 이미지를 가져오세요 | docker pull |
crictl pull |
| 이미지 삭제 | docker rmi |
crictl rmi |
| 푸시 이미지 | docker push |
기본적으로 지원되지 않습니다. |
| 사용하지 않는 부분을 가지치기하세요 | docker image prune |
crictl rmi --prune |
사용 사례 및 장단점

Docker 이미지는 다양한 툴과 레지스트리 통합 기능 덕분에 CI/CD 파이프라인이나 로컬 개발 환경에서 사용하기에 docker build적합합니다. Containerd 이미지는 nerdctl과 같은 툴을 통해 Docker와 유사한 환경을 제공하므로 프로덕션 Kubernetes 클러스터에서 낮은 지연 시간과 최소한의 리소스 사용량으로 최적의 성능을 발휘합니다. Docker 이미지는 OCI 규정을 준수하므로 컨테이너 기반 환경에서의 마이그레이션도 간편합니다.