[Container] Container란?
Container란 무엇일까요?
보통 VM과 비교하여 많이 설명되긴 하지만 더 깊게 알아볼 필요가 있습니다.
VM은 아키텍처 중간에 하이퍼바이저(Hypervisor)라 불리우는 요소가 격리된 환경을 구성해주기 위해
올라가고 Container는 Container Engine이 올라가는 형태입니다.
하이퍼바이저는 VMware, Citrix, Nutanix등 가상화 업체가 유명하고
컨테이너런타임은 그 유명한 Docker가 있습니다.
그런데 왜 VM보다 Container가 더 가볍고 빠르다고 말하는 것일까요?

그 이유는 Hypervisor는 App을 올리기 위해 다시 OS를 설치하는 과정이 중간에 있습니다.
OS 위에 하이퍼바이저를 위한 OS를 다시 설치해서 App을 배포하는 것과
OS 위에 Container Runtime만 설치해서 App을 배포하는 것과 어떤게 더 가볍고 빠를가요?
컨테이너는 여기서부터 시작됩니다.
아직 컨테이너에 대해 정확하게 개념이 정해진 건 없지만
컨테이너는 리눅스 커널을 통하여 프로세스(컨테이너)를 격리된 환경에서 실행시키는 기술이라 말하고 있습니다.
즉 컨테이너는 하나의 프로세스로 동작한다는 뜻입니다.
당연히 OS에 올라가는 App보다 프로세스로 동작하는 컨테이너가 더 빠를수 밖에 없죠.
Hypervisor -> GuestOS -> App으로 동작하는 순서 그리고
ContainerRuntime -> App(Container)
두가지만 기억하면 좀 더 컨테이너를 이해하기 쉽지 않을까요??
Good Day!