Search
moon
sun
🌍

연산자원 이용량을 잘 제한하고(cgroup), 파일시스템과 네트워크 인터페이스 등 시스템 자원까지 잘 분할하면(Namespace), 컨테이너 런타임을 구현할 수 있다. 즉, 컨테이너 런타임의 본질은 cgroup과 Namespace의 합이다.

생성
엔트리포인트
최종 수정
고유번호 수동 지정
이전 첫 영구메모의
다음
고유번호 결합
♻️ prev note
🚀 prev note
♻️ next note
🌍
bc2_1.1_1. title: 도커는 컨테이너 엔진을 쉽게 다룰 수 있도록 만든 도구의 일종이다.
🌍
컨테이너 기술은 표준을 위해 계층적으로 구성되어 있다. 도커도 마찬가지다. 도커 엔진은 표준을 지키는 도커 데몬(고수준 컨테이너 런타임)에게 일을 시키고, 도커 데몬은 표준을 지키는 도커 런타임(저수준 컨테이너 런타임)에게 일을 시킨다. 도커 런타임은 컨테이너를 실행한다.
🔵
원래 가상화 개념은 완전가상화와 컨테이너 모두를 포괄한다. 하지만 일반적으로 ‘가상화 기술’이 하이퍼바이저를 이용한 완전가상화를 지칭하는 경우가 많다. 환경 격리 측면에서 완전가상화 기술과 컨테이너 기술을 포괄하는 샌드박스(Sandbox)라는 단어를 사용하는 것이 낫다.
🔵
bb8.1_1. title: 오늘날 모든 운영체제들의 근본이 되는 운영체제는 1970년대 어셈블리, B언어, C언어를 이용해 작성된 유닉스(UNIX)이다.
🔵
컨테이너의 원래 목적은 특정 애플리케이션 딱 하나를 격리된 조건에서 최대한 가볍게 실행하는 것이다. 프로세스 하나가 PID 1이 되는 이유도 이것이다. “사용자 세계 전체를 펼치는 특이점”이 아니다.
🚀 next note
관련 임시노트
고유번호
2 more properties
파일시스템(from1) 접근을 적절히 제어하고(1979년 발표된 프로그램 chroot 에서 근본을 찾을 수 있다)(참고1,참고10), 연산자원의 사용량(참고5,참고12:도커에서 자원을 제한하는 예)을 프로세스마다 잘 제한하고(2006년 발표된 프로그램 cgroup 이 이 기술의 근본이다)(참고2), chroot의 파일시스템 접근 제어에 더해 네트워크 인터페이스 등(참고6) 시스템 자원까지 잘 분할(참고4:Namespace은 chroot 기능을 모두 포괄한다고 볼 수 있다)하면(2002년 발표된 프로그램 Namespace이 이 기술의 근본이다)(참고11), 컨테이너 런타임을 구현할 수 있다(참고9). 따라서 컨테이너 기술의 핵심인 컨테이너 런타임의 본질(from2)은 cgroup과 Namespace의 합이다.
기술 또는 개념
기능
근본
container
환경 격리
cgroup, namespace
cgroup (2006, Google)
연산 자원(CPU, RAM 등) 이용 제어
namespace (2002(참고11))
시스템 자원의 분할
Plan 9(sup3), chroot
실제로 2008년 발표된 최초의 컨테이너 엔진 LXC(LinuX Containers)(참고7:LXC는 컨테이너 엔진)의 컨테이너 런타임은 OCI(Open Container Initiative)의 표준을 준수하는 RunC 컨테이너 런타임을 기반으로 구현되어 있고(참고7), RunC는 cgroup과 Namespace를 이용해 구현되어 있다(참고3).
parse me : 언젠가 이 글에 쓰이면 좋을 것 같은 재료들.
1.
None
from : 과거의 어떤 생각이 이 생각을 만들었는가?
1.
a.
컨테이너 기술은 항상 가상화 기술과 함께 언급된다.
2.
3.
supplementary : 어떤 새로운 생각이 이 문서에 작성된 생각을 뒷받침하는가?
3.
opposite : 어떤 새로운 생각이 이 문서에 작성된 생각과 대조되는가?
1.
None
to : 이 문서에 작성된 생각이 어떤 생각으로 발전되고 이어지는가?
2.
참고 : 레퍼런스
9.
10.