OCI(Open Container Initiative)?

Kim Dong Kyun·2023년 8월 1일
1

1. OCI?

Open Container Initiative (OCI)는 컨테이너 런타임 과 이미지 관련 업계 개방형 표준을 만들기 위해 2015년 6월 22일에 레드햇 ( 구 CoreOS 사) 와 Docker 사 등의 여러 기업에 의해 설립 된 현재는 Linux Foundation 산하의 오픈 소스 단체이다

등장 배경

Docker 이외의 다른 회사들 (대표적으로 Red hat) 이 다른 컨테이너 규격의 표준화를 추진하려고 하면서 컨테이너의 표준에 대한 논의 필요성이 생겼기 때문


OCI의 목표

OCI의 목표는 컨테이너 포맷/런타임에 대한 오픈 스펙과 표준을 제공함으로써 컨테이너 생태계의 호환성을 강화하는 것이다.

컨테이너 런타임: 컨테이너를 생성하고 실행하는 데 사용되는 런타임 스펙이다. 런타임은 컨테이너의 생명 주기를 관리하고 컨테이너를 격리된 환경에서 실행한다.

OCI는 컨테이너 런타임의 표준 스펙을 정의하여 다른 컨테이너 런타임들이 이를 준수하도록 하여 호환성을 보장한다.

  • 대표적인 OCI 호환 런타임으로는 runc가 있다

runc는 OCI에서 정의된 저수준 런타임 스펙 구현 도구이다


고수준, 저수준 런타임?

1. 저수준 런타임 (Low-level Runtime)

저수준 런타임은 컨테이너를 생성하고 실행하는 데 필요한 가장 기본적인 기능을 제공한다.

  • 대개 컨테이너의 생명 주기를 관리한다
  • 격리된 환경에서 컨테이너를 실행하는 데 중점을 둔다

저수준 런타임은 보통 OS 레벨 가상화를 사용하여 리눅스 컨테이너를 실행하는 데에 특화되어 있다.

2. 고수준 런타임 (High-level Runtime)

고수준 런타임은 저수준 런타임 위에 추가적인 기능과 편의성을 제공하는 추상화 레이어이다 (추상화된 인터페이스를 제공하여 쉬운 방식으로 기능을 제공한다)

  • 저수준 런타임이 제공하는 기능을 활용하면서도
  • 컨테이너 관리, 클러스터링, 스케줄링 등과 같은 기능들을 더 쉽게 다룰 수 있도록 해줌

도커에서는?

  • docker-containerd라는 고수준 런타임과 docker-runc라는 저수준 런타임을 이용해서 제공한다.
  • docker가 기존에 가지고 있던 컨테이너 daemon으로써의 기능을 containerd에게 넘겨 주었고, docker 데몬 자체는 conatinerd에 대한 클라이언트로서 기능한다.

"표준 컨테이너"가 만족해야 할 5가지 원칙


결론

  • OCI는 저수준 런타임 스펙의 표준이며, runC 등이 이에 해당한다

참고 블로그
참고 블로그

0개의 댓글