본문 바로가기
DevOps/Docker

가상화 기술이란? 컨테이너란?/도커(docker) vs VMware /컨테이너(container),하이퍼바이저(hypervisor)

by 스파이디웹 2020. 7. 7.
728x90

가상화기술이란?

  • 물리적인 하드웨어 자원(CPU,Memory 등)을 논리적인 리소스로 제공하기 위한 기술
  • 물리적인 machine에 실제 machine처럼 보이게 만드는 기술, 즉 논리적인 machine

1. 호스트 OS형(VMware, VirtualBox)

호스트 OS형은 물리적인 하드웨어 자원 위에 OS를 설치해서 그 위에서 가상화 소프트웨어와 Virtual Machine을 움직이는 방식을 말한다. 따라서 이 같은 경우엔 호스트 Machine과 Virtual Machine 간의 OS가 서로 다를 수 있다.

 

2. 하이퍼바이저(Hypervisor)형(VMware ESXI, LINUX에서의 xen/citrix, XenServer, Microsoft Hyper-v)

하이퍼바이저형은 호스트 OS를 필요로 하지 않는 타입의 가상화 방식을 일컫는다.

즉, 하이퍼바이저라는 소프트웨어를 물리적인 하드웨어 자원 위에 직접 동작하게 함으로써 하이퍼바이저 소프트웨어 위에서 개별로 가상머신을 동작하게 만든다.

 

3.컨테이너(container)형

컨테이너란?
소프트웨어 서비스를 실행하는 데 필요한 특정 버전의 프로그래밍 언어 런타임 및 라이브러리와 같은 종속 항목과 애플리케이션 코드를 함께 포함하는 경량 패키지

즉, 운영체제 수준에서 CPU, 메모리, 스토리지, 네트워크 리소스(자원들)를 쉽게 공유할 수 있게 해주며 컨테이너가 실제로 실행되는 환경에서 애플리케이션을 추상화할 수 있는 논리 패키징 메커니즘을 제공
  • 컨테이너형은 좀 독특한 형태. 호스트 OS위의 Application layer 에서 개개의 Application 형태로 동작한다.
  • 이 개개의 application을 컨테이너라고 하며 호스트 OS위에서 동작한다.
  • 개개의 컨테이너는 OS Kernel을 공유하여 동작하기 때문에 호스트 OS와 컨테이너 OS는 같다.
  • 하나의 컨테이너 내에서 환경변수를 설정했을 땐 다른 컨테이너에서 동일하게 먹히지 않는다.

Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼

Docker는 OS(Operating System)을 가상화하여 동작함

VMware 특정 hardware의 resource를 할당하여 동작

  • Virtual Machine은 Physical hardware을 추상화하여 동작한다.
  • 하나의 Machine 위에서 여러 개의 VM이 동작하고, 각각 VM은 OS,binary & Library file이 있어야 한다.
  • 그렇기 때문에 이로인해서 저장공간이 하나의 Machine위에 동작하는 VM이 증가할수록 낭비가 심해진다.

 

  • 하지만, Docker의 Container 구조는 Application layer에서 종속되는 패키지 코드를 추상화 하여 동작
  • 즉, Host OS 위에서 Docker가 동작하여 여러개의 App 형태로 동작을 하는 것.
  • 그렇기 때문에 VM의 문제점이었던 자원 할당에 대한 문제점도 다른 컨테이너와 함께 OS Kernel을 공유할 수 있어 문제점을 보완할 수 있고 저장공간이 별개로 필요하지 않기 때문에 저장공간 또한 낭비를 막을 수 있음.
  • 컨테이너는 다양한 프로그램,실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해준다. 지금 현재는 백엔드 프로그램, 데이터베이스 서버, 메시지 큐 등 어떤 프로그램도 컨테이너로 추상화 할 수 있고 조립PC,AWS,Azure,Google Cloud 등 어디서든 실행 할 수 있다.
728x90

댓글