VM은 ‘하이퍼바이저’를 통해 CPU, 메모리, 디스크, 네트워크 들을 가상화 시켜서 사용한다.

다르게 말하면 VM에서 무엇을 실행하던 하이퍼바이저를 지나야한다. 따라서 무겁다. 성능 손실이 발생할 수밖에 없는 구조.

대신 호스트로부터 완전히 분리된 환경을 제공할 수 있다.

Untitled

반면에 컨테이너는 Virtual Machine과 같이 격리된 환경을 제공하기 위해 태어났는데, 매우 가볍다

Docker 위에서 생성된 운영체제(컨테이너)는, 하나의 프로세스로 취급되는데, 특별한 프로세스로 취급을 해준다.

호스트 프로세스와는 완전히 격리된 환경의 프로세스다.

VM과 다르게, 하이퍼바이저와 같은 레이어를 한번 거치는 게 아니라 다이렉트로 하드웨어를 사용하기 때문에 성능 손실이 거의 없다.

컨테이너 기반 기술