전산직/컴퓨터일반

Docker와 VM의 차이

glorypang 2025. 11. 7. 21:36
728x90
반응형
SMALL

1. Docker와 VM의 기본 개념

Docker란?

Docker는 컨테이너(Container) 기술을 기반으로 한 가상화 플랫폼
하나의 OS 위에서 여러 애플리케이션을 서로 격리된 공간(컨테이너) 에서 실행할 수 있도록 도와줌

즉, “프로그램을 실행하기 위한 모든 환경(코드, 라이브러리, 설정 등)”을 묶어서 어디서든 동일하게 동작

💡 한 줄 요약: “환경 차이로 인한 문제를 없애주는 가벼운 가상화 기술”

 

VM (Virtual Machine)이란?

VM은 하드웨어 수준에서 가상화를 구현한 기술입니다.
하이퍼바이저(Hypervisor)를 통해 물리적인 서버 위에 여러 개의 가상의 컴퓨터(Guest OS) 를 만드는 방식

각 VM은 CPU, 메모리, 디스크를 독립적으로 가지고 있어 완전한 컴퓨터처럼 동작

💡 한 줄 요약: “하드웨어 전체를 복제한 완전한 가상 컴퓨터”

 

2. 구조 비교

항목  Docker  VM (Virtual Machine)
가상화 방식 운영체제(OS) 수준 하드웨어 수준
구성 요소 Host OS → Docker Engine → Containers Host OS → Hypervisor → Guest OS → Apps
부팅 속도 초 단위 (빠름) 수십 초 ~ 수분 (느림)
리소스 사용량 적음 (가벼움) 많음 (무거움)
OS 공유 여부 Host OS 커널 공유 독립된 OS 사용

Docker는 Host OS의 커널을 공유하기 때문에 실행 속도가 빠르고, 메모리 사용량도 적습니다.
반면 VM은 각각의 OS를 설치해야 하므로 더 무겁고 부팅 시간도 오래 걸립니다.

3. 장단점 비교

Docker의 장점

  • 컨테이너 생성 및 삭제가 빠름
  • 가볍고 효율적 (하나의 서버에 수백 개 컨테이너 가능)
  • 개발 → 배포까지 환경 일관성 유지
  • 마이크로서비스 아키텍처에 최적화

 Docker의 단점

  • OS 커널을 공유하므로 보안 경계가 약함
  • 완전한 OS가 아니라 제한된 환경

VM의 장점

  • 완전한 격리 환경 제공 (보안성 우수)
  • 서로 다른 OS를 동시에 실행 가능 (예: Windows + Linux)
  • 안정적이며 검증된 기술

VM의 단점

  • 부팅과 실행이 느림
  • OS마다 자원을 많이 차지함
  • 이미지 관리 및 배포가 번거로움

4. 보안과 격리 측면

Docker는 “프로세스 수준”에서 격리를 제공하기 때문에,
Host OS에 대한 접근 권한이 잘못 설정되면 보안 위험이 생길 수 있습니다.

 

반면 VM은 “하드웨어 수준”에서 완전히 분리되어 있어서,
한 VM이 해킹돼도 다른 VM이나 Host에 영향을 주기 어렵습니다.

✅ 보안이 최우선이라면 VM
⚡ 빠른 배포와 확장이 중요하다면 Docker

 

5. 정리하자면

Docker는 “가볍고 빠른 실행 환경”
VM은 “완전한 분리와 보안이 필요한 환경”

결국 두 기술은 대체 관계라기보단, 상호 보완적인 관계입니다.
실제 서비스에서는 “Docker로 애플리케이션을 띄우고, VM 위에서 이를 실행”하는 식으로 함께 사용되기도 합니다.

 

728x90
반응형
LIST