가상화 기술
가상머신과 도커
Adose
2025. 3. 19. 10:04
📁 가상머신과 도커
📄 가상화(Virtualization)
운영체제를 여러 개 띄우는 기술은 가상화라고 부르며, 대표적인 솔루션은 다음과 같다.
- VMware, VirtualBox, Hyper-V → 각각 독립적인 OS(Windows, Linux 등)를 실행하는 **가상 머신(VM)**을 제공
- KVM, Xen → 리눅스 기반 가상화 기술
📄 도커(Docker)
도커는 운영체제(OS)를 여러 개 띄우는 것이 아니라, 하나의 OS에서 여러 개의 컨테이너(Container)를 실행하는 기술
즉, 도커는 가상 머신처럼 OS를 통째로 가상화하는 것이 아니라, 하나의 OS에서 격리된 환경을 여러 개 만드는 것
🚀 차이점 요약
가상 머신(VM) | 하드웨어 수준에서 OS를 여러 개 실행 | VMware, VirtualBox, Hyper-V |
컨테이너(Docker) | 하나의 OS 내에서 독립적인 애플리케이션 실행 환경 제공 | Docker, Kubernetes |
✔️ 결론
여러 개의 운영체제를 띄우는 것"을 원한다면 가상 머신(VM)을 사용
하나의 운영체제에서 독립적인 실행 환경을 여러 개 운영하는 것"이라면 Docker
📁 왜 도커를 사용할까?
1️⃣ 같은 실행 환경 보장
- "내 컴퓨터에서는 되는데, 서버에서는 안 돼!" 이런 문제를 방지
- 개발 환경(로컬)과 배포 환경(서버)이 동일하게 유지됨
2️⃣ 여러 개의 기능(서비스) 독립 실행
- 예를 들어, 웹 서버(Nginx), DB(MySQL), 백엔드(Spring Boot)를 각각 독립적인 컨테이너로 실행 가능
- 서로 격리된 환경에서 동작하므로 충돌 없이 개발 가능
3️⃣ 빠른 배포 및 확장 가능
- 특정 기능만 수정해서 바로 배포 가능
- 컨테이너 개수를 늘려서 손쉽게 확장 가능 (트래픽 증가 시 유용)
🚀 도커를 활용한 예시
✅ Spring Boot + MySQL + Redis
- Spring Boot 백엔드 서버
- MySQL 데이터베이스
- Redis 캐시 서버 👉 이 모든 걸 각각의 컨테이너에서 독립적으로 실행하면서, 같은 네트워크에서 통신
✅ 마이크로서비스 아키텍처(MSA)
- 회원 서비스, 결제 서비스, 상품 서비스 등을 각각 컨테이너로 실행
- 개별적으로 배포 및 확장 가능
✔️ 결론
- 같은 실행 환경에서 여러 개의 기능을 개발하고 실행할 수 있게 해주는 기술
- 격리된 환경에서 여러 개의 애플리케이션을 관리하는 기술
ChatGPT 참고