본문 바로가기

Docker

컨테이너 vs 가상머신(VM)

728x90

가상 머신(Vertual Machine)

  • VM은 한 컴퓨터에서 다른 컴퓨터 동작을 에뮬레이션할 수 있는 소프트웨어 환경
  • 물리 머신을 완벽히 에뮬레이션하는 하이퍼바이저(hypervisor)에 기반
    • 하이퍼바이저 ⇒ 시스템 메모리, 프로세서 코어, 디스크 스토리지 및 네트워크, PCI 애드온 등 다른 기술 자원의 요구량을 할당하는 역할
  • 하드웨어 가상화

컨테이너(Container)

  • 격리되고 독립된 환경에서 애플리케이션의 의존성 구성 요소와 함께 애플리케이션을 실행할 수 있는 가상 운영 체제(OS)가 포함된 패키지
  • OS 수준만 가상화
VM과 Container의 차이점
  • 컨테이너와 가상 머신의 주요 차이점은 컨테이너는 자원 할당을 위한 게스트 OS나 하이퍼바이저 대신 컨테이너 엔진을 사용

 

가상 머신 특징

  • 프로세서는 서로 다른 VM 간에 공유 가능
  • VM의 디스크 스페이스는 필요한 만큼만 사용할 수 있도록 설정 가능
    → 디스크 최대 크기를 정의할 수 있지만, 시스템에서 활발히 사용되는 스페이스만 사용
  • 예약 메모리는 총 메모리이며 VM 간 공유 X

 

컨테이너 특징

  • 쿠버네티스를 사용하는데 필요한 메모리와 CPU를 설정할 수 있지만 필수는 아님
    • 컨테이너 엔진이 컨테이너가 정상적으로 작동하는데 필요한 자원 할당
  • 기본 OS를 재사용할 수 있어 완전한 OS가 필요하지 않기 때문에 물리 머신이 지원해야 하는 부하는 물론 사용된 스토리지 스페이스와 애플리케이션 시작 시간이 감소
  • 즉, 컨테이너는 VM에 비해 훨씬 가벼움
728x90

'Docker' 카테고리의 다른 글

[Docker Compose] Spring Boot + MySQL + Redis  (0) 2024.08.21
Docker compose 설정 및 각종 테스트  (0) 2024.08.09
Docker 설치 및 환경 설정  (0) 2024.08.09
Docker란?  (0) 2024.08.08