Containerd와 runc 의 차이

carlkim·2024년 1월 16일
0

WAS

목록 보기
6/12

컨테이너 런타임(Container Runtime)은 컨테이너화된 응용 프로그램을 실행하는 환경을 제공하는 소프트웨어입니다
-- Docker, Containerd, rkt, CRI-O, containerd-shim, podman 같은 소프트웨어 --

Runc 와 Containerd 모두 컨테이너 관리를 위한 오픈 소스 도구.

컨테이너 런타임

컨테이너를 실행하기 위해서는 다음과 같은 세 단계를 거친다.

Containerd :

목적 및 기능

Docker의 하위 프로젝트로 시작되었으며, 컨테이너 런타임을 위한 코어 기능을 제공하는 데 중점을 둡니다. containerd는 컨테이너 런타임의 핵심 기능과 관리를 담당하며, 이미지 다운로드, 저장, 네트워킹, 스냅샷 및 기타 관리 작업을 포함합니다.

위치 및 역할

컨테이너의 핵심 기능을 관리하는 데 중점을 두고 있으며, 이는 컨테이너의 실행보다는 더 낮은 수준의 작업에 관련됩니다. containerd는 컨테이너 관리 시스템(예: Docker)에서 백엔드로 사용됩니다.

종속성

containerd는 runc를 사용하여 컨테이너를 실행합니다. 즉, containerd는 컨테이너 런타임의 코어 기능을 제공하고, 실제 컨테이너 실행은 runc에 의해 처리됩니다.

runc

목적 및 기능

Open Container Initiative (OCI)에서 정의한 컨테이너 실행 스펙에 따라 컨테이너를 생성하고 실행하는데 사용됩니다. runc는 컨테이너의 생명 주기 동안 PID 1로 작동하며, 컨테이너의 프로세스를 생성하고 격리된 환경에서 실행하는 역할을 합니다.

위치 및 역할

컨테이너의 실행에 특화되어 있으며, OCI 스펙을 준수하여 컨테이너를 실행하는 데 중점을 둡니다. 주로 컨테이너를 생성하고 시작하는 데 사용되며, containerd와 함께 작동하여 컨테이너의 전체 라이프사이클을 관리합니다.

종속성

runc는 컨테이너를 실행하는 역할을 담당하며,** OCI 스펙을 준수하여 컨테이너의 실행 환경을 설정하고 프로세스를 실행합니다.

CRI-O와 containerd가 가장 널리 사용되는, OCI 표준을 기반으로 하는 Container Runtime이다. Docker에서는 Container Engine으로 containerd를 사용 중이며 Docker를 설치하면 자동으로 설치된다.
따라서 containerd가 OCI 표준을 기반으로 만들어졌기 때문에 kubernetes에서 무리 없이 관리될 수 있다.

요약

containerd는 컨테이너의 핵심 관리 작업을 담당

runc는 실제로 컨테이너를 실행하는 데 사용되는 도구입니다.

profile
가장 나답게 문제해결.

0개의 댓글