본문 바로가기

MSA/Docker

Virtual Machine vs Container

Container와 VM을 비교할때 설명하는 부분이 정리가 필요하여 이곳에 정리하려한다.

 

VM(Virtual Machine)

컴퓨터 환경을 가상화하여 소프트웨어화 한것으로 Hypervisor위에 OS, Memory, Driver 등과 같은 컴퓨터환경이 구성되기위해 필요한 요소들이 갖춰진다.

서버 한대에서 여러개의 OS를 사용할 수 있는 장점과 서버공간을 효율적으로 사용할 수 있다.

 

Container

VM과 비교하였을때 어플리케이션 중심으로 설계되었다고 볼 수 있다. Container는 별도의 OS나 Driver없이  Host OS를 공유한다.

개별 어플리케이션을 위한 가상공간을 할당해준다.

컨테이너 기술은 리눅스에서 프로세스 격리를 위해 사용하던 기술들을 조합하여 발전한 것으로 chroot, namespaces, cgroup을 조합하여 만들어진 LXC(Linux Container)에서 발전되었다.

 

  - chroot : 특정 디렉토리를 최상위 디렉토리로 인식하게 하는 명령어

 

  - nameSpace : 리눅스 시스템 자원을 묶어 프로세스에 할당하는 방식, 하나의 프로세스 자원을 관리

  - cgroup : CPU, Memory 등 프로세스 그룹의 시스템 리소스 사용량을 관리하여 특정 프로그램,프로세스가 자원 과다사용을 제한

 

컨테이너의 장점 : 실행에 필요한 환경이 구성되어있어 어떤 환경에서도 오류없이 어플리케이션을 작동시킬 수 있음.

 

 

 

Virtual Machine VS Container

Virtual Machin vs Docker Container

 

Container는 Hypervisor나 게스트OS가 필요하지 않기때문에 더 가볍고 OS가 포함되어있지않아 용량이 크지않다. OS 부팅시간이 없기때문에 서비스 시작시간이 짧으며 작은 이미지용량을 토대로 복제/배포 등이 용이하다.

 

 

'MSA > Docker' 카테고리의 다른 글

Container란??  (0) 2021.10.20