[Docker] Docker vs Virtual Machine

DevHwan·2023년 1월 4일
0

가상머신 vs Docker 컨테이너

지난 글을 통해 Docker 컨테이너를 왜 사용하고, 이것이 무엇인가에 대해 알아보았다. 그런데 의문이 들 수 있다. 환경 문제를 해결하기 위해서는 VM을 사용하면 되는 게 아닌가? 흔히 사용하는 VM, Virtual Machine과 도커 컨테이너는 무엇이 다른것인가? -> 왜냐면 가상머신에서도 컴퓨터를 작동시킬 수 있고, 코드를 작성할 수 있고, 빌드, 실행할 수 있다. 이를 위해서 가상머신에 대해 짧게 알아보자.

Virtual Machine

가상머신을 사용한다는 것은 호스트 운영체제가 있다는 것이다. 그 위에 버츄얼 머신을 설치한다. 컴퓨터 내부의 컴퓨터이다. 이것은 가상 OS를 갖는다. 가상 머신은 모든 것이 보유된 캡슐화된 환경이다.

이러한 방식은 작동하지만 몇몇 문제가 존재한다.

가장 큰 문제는 가상 운영 체제를 가진 가상 머신에서 발생하는 오버헤드이다. 이것들은 컴퓨터와 같은데 이러한 머신이 여러개 있다면 매번 새로운 컴퓨터를 머신 내부에 설치해야 하고, 하드웨어 자원을 낭비하게 된다. → 가상 머신이 많아지면 많아질수록 문제가 생긴다. 그렇지만 많아질수록 항상 동일하게 복제되는 것은 존재한다. 가상 OS 같은 경우이다. 다양한 도구들도 문제가 된다.

따라서 가상머신은 환경 문제를 해결하기 위한 완벽한 해결방법이 아니다. -> 해결은 가능하지만 단점이 분명하다.

그렇다면 이를 도커 컨테이너에서는 어떻게 해결하였는 지 바로 알아보자.

Docker 컨테이너

  • 하나의 머신에 여러 가상 머신을 설치하지 않는다. 따라서 운영체제는 기본적으로 장치되어 있거나 컨테이너 에뮬레이트를 지원하는 내장 컨테이너를 활용한다.

  • 그위에 도커 엔진이라는 도구를 사용한다. 이것은 가벼운 도구이고 이 위에서 여러 컨테이너가 작동하게 된다.

  • 부풀려진 운영체제, 수 많은 추가 도구들을 포함하지 않기 때문에 자원을 최소화한다. → 가상머신보다 훨씬 작은 자원들만 사용한다.

  • 컨테이너를 생성하고 이를 구성파일로써 설명이 가능하고, 다른 사람들과 공유하거나 이미지에 빌드하여 모든 사람과 같은 시스템에서 시작할 수 있도록 할 수 있다.

장점 : 운영체제에 미치는 영향 적고, 빠르다. 이미지와 구성파일로 공유, 재구축, 배포에 좋다. 애플리케이션 환경을 만족하지만 필요없는 것들이 없다.

profile
달리기 시작한 치타

0개의 댓글