Docker container vs VM
가상머신(VM)과의 차별점에 집중해서 알아보자.
사실상 Docker container와 Virtual machine의 비교가 아니라, 엄밀히 말하면 Container와 VM을 비교해야 맞는 개념
가상머신은 운영체제 위에 하드웨어를 에뮬레이션하고 그 위에 운영체제를 올려 프로세스를 실행하는 방식으로 가상화 환경을 제공한다. 훨씬 강력하게 격리되기 때문에 host와는 분리된다고 봐도 될 정도이다.
이에 반해, Docker container는 하드웨어 에뮬레이션이 없고, 리눅스 커널을 공유해서 프로세스를 실행한다고 생각하면 된다.
더 자세히 말하면, 앞의 Docker 이해하기1에 나왔던 서버 관리방법 중에 VM은 전가상화방법에 해당하고, container는 반가상화방법에 해당한다고 생각하면 된다. VM은 Hypervisor가 hardware를 가상화해서 그 위에 사용하고 싶은 Guest OS들이 올라간다. 반면 container는 Docker-engine 위에 application에 실행에 필요한 바이너리만 올라간다.
container의 장점은 위의 그림에서 명확하게 알 수 있다. "작다" 작다라는 공간 상 차지하는 용량이 작아 그 자체로도 장점이 있지만 네트워크 관점에서 패키징하고 배포할 때 "빠르다"라는 장점을 동시에 가지고 온다. 그렇지만 VM도 VM 만의 뚜렷한 장점이 있다. "보안" container는 Host kernel을 공유하기 때문에 container하나가 뚫리면 위에 Host kernel자체도 위험하다. 이에 반해 VM은 조금 더 강력하게 격리되어있는 환경이기 때문에 보안에는 더 안전성을 가지는 아키텍처이다.
'Operating System > Docker' 카테고리의 다른 글
[Docker] Docker이해하기4. docker image 만들어보기 1 (0) | 2021.01.07 |
---|---|
[Docker] Docker이해하기3. 도커 이미지(image) (0) | 2021.01.06 |
[Docker] Docker이해하기1 . 가상화 개념 (0) | 2021.01.06 |
Paas 개념 (0) | 2021.01.05 |
[Docker] install - 도커설치방법 (Ubuntu18.04) (0) | 2021.01.05 |