korean IT student

Docker - 도커와 기존의 가상화 기술(VM) 차이. 본문

Infra/Docker

Docker - 도커와 기존의 가상화 기술(VM) 차이.

현창이 2020. 8. 22. 15:02

도커 컨테이너 와 VM의 차이를 확인 해보자.

 

먼저, 공통점은 도커 컨테이너와 가상 머신은 기본 하드웨어에서 격리된 환경 내에 애플리케이션을 배치한다.

 

차이점

 - 격리된 환경을 얼마나 격리를 시키는지의 차이

 - 도커 컨테이너는 하이퍼바이저와 게스트 OS가 필요하지 않으므로 더 가볍다.

 - 컨테이너는 호스트 OS위에 어플리케이션의 실행 패키지인 이미지를 배포하기만 하면 되는데

    VM은 VM을 띄우고 자원을 할당하고 게스트 OS를 부팅하여 어플리케이션을 실행

 

도커 컨테이너

 - 애플리케이션은 컨테이너가 제공하는 격리 기능 내부에 샌드박스가 있지만, 여전히 같은 호스트의 다른 컨테이너와 동일한 커널을 공유한다.

 - 컨테이너 내부에서 실행되는 프로세스는 호스트 시스템에서 볼 수 있다.

 - 컨테이너에 OS를 내장할 필요가 없어 매우 가볍다.

 

가상머신(VM)

 - VM 내부에서 실행되는 모든 것은 호스트 운영 체제 또는 하이퍼바이저와 독립되어 있다.

 - VM은 각각의 환경을 주어야하고 환경에 맞게 커널을 부팅한다.

 - OS 까지 가상화하여야해서 느리다.

도커 컨테이너 VS 가상머신(VM)

 

어떻게 해서 도커 컨테이너를 격리 시키는가?

 - 리눅스에서 쓰이는 Cgroup과 네임스페이스를 사용한다.

 - 컨테이너와 호스트에서 실행되는 다른 프로세스 사이에 벽을 만드는 리눅스 커널 기능

 

C Greup - CPU, 메모리 등 프로세스 그룹의 시스템 리소스 사용량을 관리 -> 사용량이 많을 경우 제한 기능

네임스페이스 - 하나의 시스템에서 프로세스를 격리시킬 수 있는 가상화 기술

 

프로세스를 작동 방향

Comments