<aside>
💡
Docker 와 컨테이너
</aside>
가상머신 (Virtual Machine, VM)
- 물리 서버 (호스트) 위에서 실행되는 가상의 컴퓨터
- 하드웨어를 소프트웨어적으로 가상화하여 여러 운영체제(OS)를 동시에 실행 가능
- Hypervisor 라는 소프트웨어가 물리 자원을 분할하여 가상 머신을 생성
- Hypervisor : 물리 서버 위에서 가상 머신을 관리하는 소프트웨어
- 독립적인 OS (Windows, Linux 등) 실행 가능
- CPU, RAM, 디스크 등 물리 리소스를 가상으로 할당
- Virtual Hardware (가상 하드웨어) : VM에 할당된 CPU, RAM, 디스크, 네트워크 등
- 보안성과 격리성이 뛰어나지만, 리소스 사용량이 큼
컨테이너 (Container)
- 애플리케이션을 실행하기 위한 가벼운 가상 환경
- OS 위에서 격리된 공간을 제공하여 애플리케이션과 의존성을 함께 실행
- 가상 머신(VM)보다 가볍고 빠름
- 배포 자동화, 확장성, 이식성 제공
Docker
- 컨테이너 기술을 쉽게 사용하도록 만든 컨테이너 플랫폼으로 경량성, 빠른 실행 속도
- 애플리케이션을 컨테이너화하여 이식성, 확장성, 일관된 환경 제공
- 이미지 기반으로 실행되며, 환경 구성을 코드화 가능
- 배포 자동화로 CI/CD 코드 변경 시 바로 배포 가능