도커와 기존의 가상화 기술과의 차이를 통한 컨테이너 이해

JANUARY 02, 2021

#. 하이퍼바이저 기반의 VM 구조

  • 하이퍼바이저에 의해 구동되는 VM은 각 VM마다 독립된 가상 하드웨어 자원을 할당받는다.
  • 논리적으로 분리 되어 있어 한 VM에 오류가 발생해도 다른 VM으로 퍼지지 않는다는 장점이 있다. 001 01

#. 도커 VS 기존 가상화 기술(VM)

#1. 공통점

  • 도커 컨테이너와 가상 머신은 기본 하드웨어에서 격리된 환경 내에서 애플리케이션을 배치하는 방법

#2. 차이점

  • vm과 비교했을 때 컨테이너는 하이퍼바이저와 게스트 OS가 필요하지 않으므로 더 가볍다.

    #2.1. 도커 컨테이너에서 돌아가는 애플리케이션은
  • 컨테이너가 제공하는 격리 기능 내무에 샌드박스가 있지만, 여전히 같은 호스트의 다른 컨테이너와 동일한 커널을 공유한다.
  • 컨테이너가 전체 OS를 내장할 필요가 없는 결과, 매우 가볍고 일반적으로 약 5-100MB 이다.
#2.2. 가상머신
  • VM 내부에서 실행되는 모든 것은 호스트 운영체제 또는 하이퍼바이저와 독립되어 있다.
  • 게스트 OS를 부팅하여 어플리케이션을 실행하기 때문에 무겁다.

001 02


#. 도커

  • 카카오톡 컨테이너와 노션 컨테이너는 커널을 공유하고 있다.
  • 각 컨테이너는 실행 프로그램 및 필요한 양만큼의 리소스에 대해 격리가 되어 있다.

001 03


#.도커 컨테이너를 격리시키는 방법

  • 컨테이너와 호스트에서 실행되는 다른 프로세스 사이에 벽을 만드는 리눅스 커널 기능인 Cgroup과 네임스페이스를 사용

001 04


작업 기록 블로그