스파르타/TIL
2024.08.12 | 도커 vs 가상머신
danny3131
2024. 8. 12. 19:34
프로젝트 관리 심화 강의를 듣던 중 도커와 가상 머신의 차이에 대해 알게 되었습니다. TIL로 작성해 보겠습니다.
✅도커
1. 도커는 애플리케이션만 실행
- 운영 체제의 핵심 부분은 공유
- 이러한 이점으로 가상머신보다 훨씬 빠르게 시작 가능
2. 높은 이식성과 확장성
- 도커 컨테이너는 한 번 만들면 어디서든지 동일하게 실행
3. 보안 격리가 가상 머신보다 약함
- 동일한 운영 체제 커널을 공유하기에 보안 격리 수준이 낮음
- 하나의 컨테이너에서 보안 문제 발생 시 같은 커널을 공유하는 다른 컨테이너에도 영향을 줄 가능성 존재
4. 운영체제 종속성
- 도커는 리눅스 커널을 사용하여 작동하므로, 리눅스 운영체제에서 가장 잘 동작함
- 윈도우나 맥 같은 다른 운영 체제에서는 호환성 문제가 있을 수 있음
- 그리고 다른 운영체제에서 사용하려면 리눅스 커널을 애뮬레이션 하는 방식으로 작동해야 하기 때문에 성능 저하를 일으킬 수 있음
✅가상머신
1. 하이퍼바이저를 통해 물리적 하드웨어 위에 가상화된 운영 체제를 실행하는 기술
- 하이퍼바이저 : 여러 운영체제를 동시에 실행할 수 있도록 물리적 하드웨어를 가상화하는 소프트웨어
2. 격리된 환경 제공
- 각 가상 머신은 독립된 운영체제를 실행
- 하나의 가상 머신에서 문제 발생해도 다른 가상 머신이나 호스트 시스템에 영향을 주지 않는다.
3. 다양한 운영 체제 실행 가능
- 하나의 물리적 서버에서 여러 종류의 운영 체제를 동시에 실행 가능
- 이를 통해 개발자나 테스트 팀은 다양한 환경을 쉽게 구축하고 사용 가능
4. 오버헤드가 크고, 느린 부팅 시간
- 가상 머신은 전체 운영 체제를 실행해야함
- 가상 머신 부팅한다는 것은 운영 체제를 처음부터 시작하는 것과 동일하기에 시간이 오래 걸림
- 이는 실제 하드웨어에서 컴퓨터를 켜는 것과 비슷
5. 높은 리소스 소비
- 여러 가상 머신을 실행하면 컴퓨터 자원을 많이 소모하게 된다.
- 두 개의 가상 머신을 실행하면, 두 운영 체제를 모두 실행해야 하므로 메모리와 CPU 사용량이 크게 증가
회고
가상 머신과 도커의 차이점을 알고 배포 시 어떤 걸 이용할지 선택할 줄 알아야 겠다는 생각을 했습니다.