가상화 기술

가상머신과 도커

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 참고