본문 바로가기
DevOps

02. docker 컨테이너 가상화 & VM 가상화

by Yoon_estar 2024. 3. 13.
728x90
반응형

가상화(Virtualization)

일반적으로 서버, 스토리지, 네트워크, 애플리케이션 등을 가상화 하여 하드웨어 리소를 
효율적으로 사용하는 데 목적이 있고 이를 통해 기업은 효율적인 자원 활용, 자동화된 IT 관리, 
빠른 재해 복구 등 장점을 갖을 수 있다.

물리적 하드웨어 유지 관리 대신 소프트웨어적으로 추상화된 가상화를 통해 제한된 부분을 쉽게 관리
하고 유지할 수 있다.

하이퍼바이저 기반의 가상머신(VM, Virtual Machine)을 통해 수행한다.
- VMWare , Virtual Box 

컨테이너 가상화 VS VM 가상화

두 가지 가상화 모두 실행하고자하는 애플리케이션 프로세스 및 종속 요소와 소스 등을 패키지, 
즉 이미지화 하여 HOSTOS 와 격리된 환경을 제공

다만 VM 가상화는 실제 호스트 운영체제와 같이 별도의 GustOS를 두고 원하는 애플리케이션을 설치하는 
하드웨어 수준의 가상화를 구현하고 

컨테이너 가상화는 VM 가상화에 비해 경량이면서 호스트 운영체제의 커널을 공유하는 운영체제(OS) 수준의 
가상화를 구현함

따라서 컨테니어 가상화는 원하는 애플리케이션 환경을 빠르게 번들링하여 패키징

컨테이너화 기술(Containerization) 기술

리눅스 컨테이너 기술은 LXC(LinuX Container)를 이요한 시스템 컨테이너화로 시작
- OS 수준의 가상화 도구
- Cgroup, namespace 등 커널 기술을 공유하여 컨테이너에 제공

이후 애플리케이션 컨테이너 기반의 Docker 출시, 초기 Docker 버전은 LXC를 활용해 컨테이너 생성

지속된 컨테이너 엔진의 발전으로 Docker는 Containerd, runC를 이용하는 방식으로 변경
- 커널 기술의 공유를 통해 컨테이너 생성을 지원하는 runC
- 생성된 컨테이너의 라이프 사이클을 관리하는 containerd
- 사용자 환경에서의 명령을 전달하는 dockerd

반응형