컨테이너 vs 가상머신 (Container vs VM)
가상머신은 하이퍼바이저 위에서 게스트 OS를 통째로 띄워 하드웨어 수준으로 격리하고, 컨테이너는 호스트 커널을 그대로 공유하면서 namespace와 cgroups로 프로세스를 격리합니다. 게스트 OS라는 한 층이 통째로 빠지기 때문에 컨테이너는 시작이 초 단위로 빠르고 이미지가 가볍지만, 격리 경계는 VM보다 얕습니다.
01 개념 한눈에 보기
Interactive Step-by-Step가상머신은 하이퍼바이저가 하드웨어를 흉내 내고, 그 위에 게스트 OS를 통째로 띄웁니다. 앱 하나를 돌리려고 운영체제 한 벌을 함께 올리는 셈입니다.
컨테이너는 게스트 OS 층을 통째로 들어냅니다. 앱과 라이브러리만 담고, 커널은 호스트 것을 그대로 씁니다.
02 쉽게 이해하기
For EveryoneVM은 건물마다 독립된 상하수도·전기 설비를 따로 놓는 단독주택이고, 컨테이너는 한 건물의 공용 설비(커널)를 쓰면서 세대별 현관문(namespace)과 계량기(cgroups)로 나눈 아파트입니다. 아파트가 짓기 빠르고 공간 효율이 좋은 대신, 공용 설비가 고장 나면 전 세대가 영향을 받습니다.
VM은 앱마다 게스트 OS 전체를 얹어야 해서 수 GB에 부팅도 분 단위입니다.
컨테이너는 호스트 커널을 공유하고 앱과 라이브러리만 담으므로 수십 MB에 시작이 즉각적입니다.
대신 커널을 공유한다는 사실 자체가 격리의 한계라, 커널 취약점은 컨테이너 경계를 넘을 수 있고 다른 커널(예: 리눅스 호스트에서 윈도우 컨테이너)은 그대로 돌릴 수 없습니다.
- –컨테이너를 쓸지 VM을 쓸지 판단
- –마이크로서비스 밀도·부팅 속도 설계
- –멀티테넌시에서 격리 수준 결정
- –컨테이너 보안 경계 이해
03 자주 묻는 질문
FAQ컨테이너 vs 가상머신 (Container vs VM)란 무엇인가요?+
가상머신은 하이퍼바이저 위에서 게스트 OS를 통째로 띄워 하드웨어 수준으로 격리하고, 컨테이너는 호스트 커널을 그대로 공유하면서 namespace와 cgroups로 프로세스를 격리합니다. 게스트 OS라는 한 층이 통째로 빠지기 때문에 컨테이너는 시작이 초 단위로 빠르고 이미지가 가볍지만, 격리 경계는 VM보다 얕습니다.
컨테이너 vs 가상머신 (Container vs VM)은(는) 어디에 사용하나요?+
컨테이너를 쓸지 VM을 쓸지 판단, 마이크로서비스 밀도·부팅 속도 설계, 멀티테넌시에서 격리 수준 결정, 컨테이너 보안 경계 이해
컨테이너 vs 가상머신 (Container vs VM)를 쉽게 비유하면?+
VM은 건물마다 독립된 상하수도·전기 설비를 따로 놓는 단독주택이고, 컨테이너는 한 건물의 공용 설비(커널)를 쓰면서 세대별 현관문(namespace)과 계량기(cgroups)로 나눈 아파트입니다. 아파트가 짓기 빠르고 공간 효율이 좋은 대신, 공용 설비가 고장 나면 전 세대가 영향을 받습니다.
