6/30 ~ 7/1

/CO

BM

(Bare Metal Server)

Application

Kernel(OS)

HW → CPU

VM

BM

Container

VM

BM


Isolation

운영체제에서 실행되는 프로세스를 격리

전가상화든 반가상화든 추가적인 OS를 설치하여 가상화하는 방법은 어쨌든 성능문제가 있으므로 사용된 방식

리눅스에서는 이 방식을 리눅스 컨테이너라고 하고 단순히 프로세스를 격리시키기 때문에 가볍고 빠르게 동작한다. CPU나 메모리는 딱 프로세스가 필요한 만큼만 추가로 사용하고 성능적으로도 거의 손실이 없다고함.


cpu 아키텍처

x86i386, i586, i686 의 모든 플랫폼에서 동작

x86_64i386, i586, i686 의 64bit 환경에서 동작

컨테이너

가상머신

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/afa60c23-7515-4400-9574-2ac219888fe3/docker-containerized-appliction-blue-border_2.png

여러 컨테이너가 동일한 시스템에서 실행되고 OS 커널을 다른 컨테이너와 공유 할 수 있으며, 각 컨테이너는 사용자 공간에서 격리 된 프로세스로 실행

컨테이너는 VM보다 적은 공간을 차지하고 더 많은 애플리케이션을 처리 할 수 있으며, 더 적은 수의 가상머신들과 운영 체제들을 다룸

OS 없음, Application만 포함

⇒ 오픈소스의 조합, 커널 버전이 다름

컨테이너에 여러 어플리케이션을 올리는건 컨테이너를 사용하는 의미가 없다...

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1a031ba6-e29a-476e-9b48-8335f5793934/container-vm-whatcontainer_2.png

가상머신은 호스트 OS위에 게스트 OS 전체를 가상화하여 사용하는 방식

하나의 서버를 여러 서버로 바꾸는 물리적인 하드웨어의 추상

여러가지 OS를 가상화 할 수 있고 비교적 사용법이 간단하지만 무겁고 느려서 운영환경에선 사용할 수 없다.

최대한 HW를 많이 쓰고 논리적으로 분리를 시키는것이 목적

OS가 꼭 필요


구성요소 3가지