← 아티클 목록

VM vs 컨테이너 차이 한 번에 이해하기

2028-06-12#cloud#VM#컨테이너

"컨테이너도 결국 가상화 아닌가요? VM이랑 뭐가 다르죠?" 클라우드를 배우면 꼭 부딪히는 질문입니다. 둘 다 한 서버에서 여러 환경을 격리해 돌린다는 목표는 같지만, 어느 층을 가상화하느냐가 다릅니다. VM은 하드웨어를 통째로 흉내 내 그 위에 OS를 통째로 올리고, 컨테이너는 OS 커널을 공유한 채 프로세스만 격리합니다. 이 한 줄 차이가 무게와 속도를 가릅니다.

구조 차이 한눈에

항목VM컨테이너
가상화 대상하드웨어 전체OS 프로세스
OS게스트 OS 통째로 포함호스트 커널 공유
무게수 GB수십 MB
부팅 시간수십 초~분초 단위
격리 수준강함(완전 분리)상대적으로 약함
관리 도구VMware, KVMDocker, containerd

핵심은 한 줄입니다. VM은 OS까지 통째로 복제해 무겁지만 격리가 강하고, 컨테이너는 커널을 공유해 가볍고 빠르지만 격리가 상대적으로 얕습니다.

왜 컨테이너가 가벼운가

VM 3개를 띄우면 게스트 OS도 3벌 올라갑니다. 각 OS가 메모리·디스크를 따로 먹으니 무겁습니다. 컨테이너는 호스트의 커널 하나를 공유하므로 OS 복제가 없습니다.

TEXT
[VM]        앱 + 게스트OS  ×3   → 하이퍼바이저 → 호스트OS → 하드웨어
[컨테이너]  앱            ×3   → 컨테이너런타임 → 호스트OS → 하드웨어

그래서 같은 서버에서 VM은 몇 개, 컨테이너는 수십 개를 띄울 수 있습니다. 이미지도 OS를 안 담아 수백 MB 대신 수십 MB로 끝나고, 부팅도 OS 부팅이 없어 초 단위입니다.

Docker
docker run -d nginx

이 한 줄이 몇 초 만에 끝나는 이유가 여기 있습니다.

언제 무엇을 고르나

  • VM — 커널 수준 제어나 강한 격리가 필요할 때. 서로 다른 OS(Windows·Linux)를 같이 돌리거나, 보안 경계를 확실히 나눠야 하는 멀티 테넌트 환경에 맞습니다.
  • 컨테이너 — 같은 OS 위에서 앱을 빠르게 배포·확장할 때. 마이크로서비스, CI/CD, 오토스케일링처럼 가볍고 빠른 기동이 중요한 경우입니다.
  • 함께 쓰기 — 실무에선 클라우드 VM 위에 컨테이너를 올리는 조합이 흔합니다. VM으로 격리 경계를 잡고, 그 안에서 컨테이너로 민첩성을 얻습니다.

판단 기준은 "OS 단위 격리가 꼭 필요한가, 아니면 빠른 배포와 밀도가 우선인가"입니다.

요점 정리

  • VM은 하드웨어를 가상화해 OS를 통째로 올린다 — 무겁지만 격리가 강하다.
  • 컨테이너는 커널을 공유해 프로세스만 격리한다 — 가볍고 빠르지만 격리가 얕다.
  • 보안·OS 분리는 VM, 빠른 배포·확장은 컨테이너, 실무에선 둘을 겹쳐 쓴다.

docker run으로 컨테이너를 직접 띄워 VM과 기동 속도·무게가 어떻게 다른지 비교하는 실습은 클라우드 트랙에서 회원가입 없이 무료로 할 수 있습니다.