리눅스, mysql을 간단히 공부하면서 docker를 처음 이용해 보았다.
보통 docker를 써봤나요? 라고 했을 때 써봤다고 한다면
docker와 virtual machine 의 차이가 뭔지 아세요? 라고 묻는다고 한다.
그렇다면! docker 와 vm 의 차이를 먼저 알아보자.😄
virtual machine vs docker (가상머신 vs 도커)

솔직히 이해가 어려워서 지피티의 도움을 받아보았다.
지피티가 쉽게 설명해준 버전은 이렇다.
각각을 박스와 집이라고 생각해보자!!
도커는 큰 창고(호스트 OS) 안에 입주자들이 쓰는 ‘이사 박스(컨테이너)’만 넣는 것이고, 가상머신은 땅 위에 작은 집을 통째로 여러 채 짓는 것이라고 생각하면 쉬울 것 같다.
가상머신을 예시로 생각하면,
집마다 전기·수도·가스(=운영체제)를 따로 설치해야 하고, 문(=커널)도 각각 갖춰야 한다.
그래서 집을 짓는 데 시간도 오래 걸리고, 공간도 많이 필요하다.
도커를 예시로 생각하면,
박스 안에는 필요한 가구(애플리케이션+라이브러리)만 쏙 들어가고, 전기·수도 같은 공용 설비(커널)는 창고에서 공유한다.
이사 박스는 가볍고 설치도 순식간에 끝난다.
따라서
- VM: 서로 다른 OS가 꼭 필요하거나, 철저한 보안·격리가 우선일 때
- Docker: 빠른 개발·배포, 자원을 아끼며 여러 서비스를 띄워야 할 때
사용하면 좋다.
표로 정리하면 다음과 같다.
| 항목 | VM (집 방식) | Docker (박스 방식) |
| 설치 시간 | “집 짓기”라 부팅까지 수십 초 이상 소요 | “박스 놓기”라 즉시(수백 ms~수 초) 실행 |
| 용량 | OS 전체 포함 → 수 GB 단위 | 애플리케이션만 → 수백 MB 수준 |
| 리소스 사용 | 독립 OS가 메모리·디스크 많이 차지 | 커널 공유 → 가볍게 여러 개 실행 가능 |
| 격리 수준 | 집단위 완전 분리 → 보안 강함 | 박스단위 격리 → 충분히 안전 (추가 설정 가능) |
참고
