스파르타/TIL

2024.08.12 | 도커 vs 가상머신

danny3131 2024. 8. 12. 19:34

프로젝트 관리 심화 강의를 듣던 중 도커와 가상 머신의 차이에 대해 알게 되었습니다. TIL로 작성해 보겠습니다. 

✅도커 

1. 도커는 애플리케이션만 실행 

  • 운영 체제의 핵심 부분은 공유
  • 이러한 이점으로 가상머신보다 훨씬 빠르게 시작 가능 

2. 높은 이식성과 확장성

  • 도커 컨테이너는 한 번 만들면 어디서든지 동일하게 실행 

3. 보안 격리가 가상 머신보다 약함 

  • 동일한 운영 체제 커널을 공유하기에 보안 격리 수준이 낮음 
  • 하나의 컨테이너에서 보안 문제 발생 시 같은 커널을 공유하는 다른 컨테이너에도 영향을 줄 가능성 존재

4. 운영체제 종속성

  • 도커는 리눅스 커널을 사용하여 작동하므로, 리눅스 운영체제에서 가장 잘 동작함 
  • 윈도우나 맥 같은 다른 운영 체제에서는 호환성 문제가 있을 수 있음 
  • 그리고 다른 운영체제에서 사용하려면 리눅스 커널을 애뮬레이션 하는 방식으로 작동해야 하기 때문에 성능 저하를 일으킬 수 있음 

✅가상머신

1. 하이퍼바이저를 통해 물리적 하드웨어 위에 가상화된 운영 체제를 실행하는 기술 

  • 하이퍼바이저 : 여러 운영체제를 동시에 실행할 수 있도록 물리적 하드웨어를 가상화하는 소프트웨어

2. 격리된 환경 제공 

  • 각 가상 머신은 독립된 운영체제를 실행
  • 하나의 가상 머신에서 문제 발생해도 다른 가상 머신이나 호스트 시스템에 영향을 주지 않는다.

3. 다양한 운영 체제 실행 가능 

  • 하나의 물리적 서버에서 여러 종류의 운영 체제를 동시에 실행 가능 
  • 이를 통해 개발자나 테스트 팀은 다양한 환경을 쉽게 구축하고 사용 가능 

4. 오버헤드가 크고, 느린 부팅 시간

  • 가상 머신은 전체 운영 체제를 실행해야함
  • 가상 머신 부팅한다는 것은 운영 체제를 처음부터 시작하는 것과 동일하기에 시간이 오래 걸림 
  • 이는 실제 하드웨어에서 컴퓨터를 켜는 것과 비슷

5. 높은 리소스 소비 

  • 여러 가상 머신을 실행하면 컴퓨터 자원을 많이 소모하게 된다. 
  • 두 개의 가상 머신을 실행하면, 두 운영 체제를 모두 실행해야 하므로 메모리와 CPU 사용량이 크게 증가

회고

가상 머신과 도커의 차이점을 알고 배포 시 어떤 걸 이용할지 선택할 줄 알아야 겠다는 생각을 했습니다.