컨테이너 런타임이란?
- 도커에서 직접 커널과 통신하며 실제로 격리된 공간을 만드는 역할을 한다.
- 호스트 운영체제에서 컨테이너를 실행하고 컨테이너 이미지를 관리함
- 실행, 일시 중지, 중지와 네임스페이스, cgroup, 네트워크 인터페이스 관리와 같은 저수준 작업을 처리
- 컨테이너의 수명 주기를 담당
- 도커는 처음에 LXC 라는 런타임을 사용했지만 나중에 libcontainer 라는 자체 런타임을 개발하고 나중에 runc 로 발전
- 점진적으로 가볍고 유연하고 안정적이 됨
runc 런타임이란?
- OCI 스펙에 따라 컨테이너를 생성하고 실행하기 위한 CLI 도구임.
- Docker 및 기타 컨테이너 플랫폼이 내부적으로 사용하는 런타임이고 컨테이너 실행을 위한 사실상의 표준.
- 단순성, 이식성, OCI 런타임 사양 준수에 중점을 두고 있음
runc 가 하는 일들
- 컨테이너 구성
- 네임스페이스 및 C그룹: PID, 네트워크 IPC 등 네임스페이스와 C그룹을 설정. 네임스페이스는 컨테이너가 자신의 리소스 집합만 볼 수 있도록 격리를 제공하고, C 그룹은 컨테이너가 사용할 수 있는 리소스(CPU, 메모리, I/O 등)를 제한하고 모니터링함
- 루트 파일 시스템: 루트 파일 시스템을 마운트함. 이 파일시스템은 보통 지정된 프로세스를 실행하는데 필요한 파일과 디렉터리가 포함된 이미지임.
- 프로세스 실행: 격리된 환경 내에서 지정된 프로세스를 실행.
- 라이프사이클 관리: 인스턴스 생성, 실행, 일시중지, 재개 등
반응형
'인프라 > 도커' 카테고리의 다른 글
도커 컴포즈 (Docker Compose) 란? 도커 컴포즈 사용법 (0) | 2024.02.18 |
---|---|
도커 컨테이너의 라이프사이클 (Docker container lifecycle) (0) | 2024.02.06 |
도커의 아키텍처 (0) | 2024.02.04 |
컨테이너 가상화란? (0) | 2024.02.04 |
LXC (Linux Container, 리눅스 컨테이너) 란? (0) | 2024.02.04 |