본문 바로가기

DevOps/Docker

[Docker] 컨테이너

서버 가상화 기술

컨테이너를 알아보기 전에 서버 가상화의 종류를 알아보자. 서버 가상화에는 호스트형 서버 가상화, 하이퍼바이저형 서버 가상화가 존재한다. 각각의 기술에 대하여 간략하게 알아본 뒤 컨테이너를 알아보자.

  • 호스트형 서버 가상화
  • 하이퍼바이저형 서버 가상화

호스트형 서버 가상화

  • 호스트형 서버 가상화는 하드웨어상에 베이스가 되는 호스트 OS를 설치하고 호스트 OS에 가상화 소프트웨어를 설치한 뒤, 이 가상화 소프트웨어 상에서 게스트 OS를 작동시키는 방식의 기술을 의미

호스트형 서버 가상화

  • 사용자가 데스크탑을 단순히 서버로만 이용하지 않고 줌, 웹 브라우저, 온라인 게임 등의 필요에 따라서 다양한 용도로 쓰기 위해 호스트 OS가 존재한다.
  • 그렇기에 호스트 OS(Window10, Linux) 설치 -> 가상화 소프트웨어 (VMWare,VirtualBox등) -> 게스트 OS 설치를 하게된다.
  • 이러한 방식은 오버헤드가 커지게 된다.
  • 오버헤드 : 가상화를 수행하기 위해 필요한 CPU 자원, 디스크 용량, 메모리 사용량 등을 의미

하이퍼 바이저형 서버 가상화

  • 앞서 이야기한 호스트형 서버 가상화 방식과는 다르게 가상화 방식만을 제공하기 위한 가상화이다. 쉽게 말해 가상화 외의 다른 작업들을 수행하기 위해 호스트 OS를 설치했다면, 하이퍼 바이저형 가상화의 경우엔 하드 웨어 위에 운영체제가 아닌 게스트 OS를 관리하기 위한 하이퍼바이저를 배치한다.
  • 하이퍼 바이저의 종류에는 Microsoft의 Hyper-V, VMWare의 Vsphere 등이 존재한다.

하이퍼바이저형 서버 가상화

  • 호스트 OS 없이 하드웨어를 직접 제어하기 때문에 자원을 효율적으로 사용 가능
  • 그러나 가상 환경마다 별도의 OS가 작동하므로 가상환경의 시작에 걸리는 오버헤드가 커진다.

컨테이너

  • 컨테이너란 호스트 OS상에 논리적인 구획(컨테이너)를 만들고, 애플리케이션을 작동시키기 위해 필요한 라이브러리 또는 애플리케이션을 하나로 모아 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것
  • 자원에 대한 효율적 활용, 격리된 환경을 제공하는것이 가장 중요한 요소이다.
  • 만약, 필요한 기능을 쓰기 위해 가상화 서버를 쓰지 않고 Native하게 필요한 기능들을 모두 올리게 된다면 DDoS와 같은 공격시에도 피해가 크게 된다.

컨테이너 구조

  • 컨테이너는 서로간의 영향을 최소화 한다. 
  • 하나의 컨테이너당 하나의 어플리케이션이 존재
  • 게스트 OS가 존재하지 않아 운영체제가 없지만 컨테이너 기술로 OS, 디렉토리, IP 주소 등과 같은 시스템 자원을 마치 각 애플리 케이션이 점유하듯 구현

컨테이너 기술과 서버가상화 기술

  • 컨테이너 기술과 서버 가상화 기술은 비슷하지만 목적이 다르다.
  • 컨테이너 기술은 애플리케이션의 실행 환경을 모음으로서 이식성 증대와 확장성이 좋은 환경에서 작동
  • 가상화 기술은 대부분 서로 다른 환경을 어떻게 효율적으로 에뮬레이트 할 것인지 고려

'DevOps > Docker' 카테고리의 다른 글

[Docker] Container 생성, 시작 및 정지  (0) 2021.09.16
[Docker] Docker 이미지 조작  (0) 2021.09.16
[Docker] 웹 서버 작동해보기  (0) 2021.09.13
[Docker] Docker 설치  (0) 2021.09.13
[Docker] Docker의 개요  (0) 2021.09.13