2. Docker 사용의 기초 - 1

shlee7131·2021년 1월 22일
0

Docker

목록 보기
2/5

2. Docker 사용의 기초 - 1

Docker를 사용하기 앞서 **Docker Client(CLI) 와 Docker Server(Daemon)**의 관계를 알아야 한다

위의 그림과 같이 Docker Server(Daemon)이 Client가 입력한 커멘드를 받아 그것에 따라 이미지나 컨테이너를 실행하는 등의 작업을 한다.

CLI란? ommand Line Interface(명령 줄 인터페이스)

2.A Docker HUB

Docker Daemon에서는 우선 명령의 대상인 이미지가 이미지 캐쉬 보관 장소에 존재하는지 먼저 탐색한다. 그리고 있을 경우 실행, 없을 경우는 Docker HUB라는 곳에서 이미지를 가져온다. 그리고 한 번 가져온 이미지는 Docker HUB가 아닌 이미지 캐쉬 보관 장소에서 다시 로드된다.

2.B Docker & VM 비교

2.B.1 가상화 기술 이전

가상화 기술이 나오기 이전에는 한대의 서버에 하나의 운영체제, 하나의 프로그램만을 운영하였다.이는 안정적이기는 하였지만** 남는 서버 공간은 그대로 방치**되는 등 비효율적이었다.

2.B.2. Hypervisor 기반 가상화 출현

Hypervisor는 논리적으로 공간을 분할하여 VM(Virtual Machine)이라는 독립적인 가상 환경의 서버 이용을 가능하게 만들었다. 그리고 Hypervisor는 Host System에 다수의 Guest OS를 구동할 수 있게 하는 소프트웨어이며 하드웨어를 가상화하면서 하드웨어와 각각의 VM을 모니터링하는 중간 관리자이기도 하다.그리고 Hypervisor 아래와 같이 Native와 Hosted로 구분되어진다.

2.B.2.a Native Hypervisor

Native의 경우 Hypervisor가 하드웨어를 직접 제어하기에 자원을 효율적으로 사용하고 별도의 Host OS가 없기때문에 오버헤드가 적다. 하지만, 여러 하드웨어 드라이버를 세팅해야 하므로 설치가 어렵다.

<장점>

  • 하드웨어 자원 효율적 사용
  • 오버헤드 적다(Host OS의 부재

<단점>

  • 하드웨어 드라이버 세팅 및 설치 복잡

2.B.2.b Hosted Hypervisor

Hosted Hypervisor는 일반적으로 많이 이용하는 방법이다.이는 Host OS 위에서 실행되며** VM 내부의 Guest OS에 가상 하드웨어 자원을 할당**하는 방식이기에 오버헤드가 크다. 하지만 Guest OS 종류에 대한 제약이 없고 구현이 상대적으로 쉽다. 그리고 각각의 VM 들은 아래 그림과 같이 **논리적으로 격리(CPU core)**되어있기 때문에 하나의 VM에 오류가 발생해도 다른 VM으로 퍼지지 않는다.

<장점>

  • Guest OS에 대한 제약 X
  • Guest OS에 구현 상대적 쉽다
  • 논리적 공간 격리로 인한 독립성 보장(오류 공유X)

<단점>

  • 오버헤드가 크다

여기서 **오버헤드(Overhead)**란 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간, 메모리 등을 말한다

2.B.3 Docker와 가상화 기술

2.B.3.a 공통점

Docker와 기존의 가상화 기술이 가지는 공통점은 VM을 기본 하드웨어에서 격리된 환경에 애플리케이션을 배치하는 것이다.

2.B.3.b 차이점

하지만 Docker의 기존의 가상화 기술이 가지는 차이점은 그 격리된 환경을 얼마나 격리시켰는가를 컨테이너와 VM간의 차이에 있다.

profile
Arch-ITech

0개의 댓글