Docker

[Docker] 도커란?

달의요정루나 2022. 1. 29. 00:58

1. 도커의 정의

- 도커는 리눅스 컨테이너 기술을 활용해 응용 프로그램의 이미지를 생성하고 이를 컨테이너에서 자동화하여 저장, 관리, 배포를 서비스하는 오프기술이다.

 

2. 하이퍼바이저를 이용

애플리케이션1 애플리케이션2
실행파일/Lib 파일 실행파일/Lib 파일
게스트 운영체계 게스트 운영체계
하이퍼바이저
호스트 운영체계
서버

- 위에 있는 표는 하이퍼바이저는 가상 머신으로 VMware, VirtualBox가 예시로 있습니다.

- 호스트 운영체계는 OS로 윈도우 10, 윈도우 11이 예시로 있습니다.

- 하이퍼바이저 가상화 머신은 호스트 운영체제 윗단에 하이퍼바이저 가상화 엔진을 설치합니다. 이 하이퍼바이저(가상머신)는 여러 게스트 운영체제를 설치할 수 있는 기능을 제공합니다.

- 하이퍼 바이저 상단에 설치된 각각의 게스트 운영체제 위에 실행파일과 라이브러리 파일들과 함께 베포하기 위해서 애플리케이션을 설치합니다.

- 호스트 운영체제 상단에 또 다른 게스트 운영체제를 설치하여 자원을 공유하는 방식입니다.

- 장점: 하나의 호스트 운영체제 위에서 여러 개의 게스트 운영체제를 사용할 수 있습니다.

- 단점: 하나의 호스트 운영체제 위에 여러 개의 운영체제가 생성되어 시스템 전체 운영에 부하가 많이 걸립니다. 각각의 게스트 운영체제가 어플리케이션을 실행하므로 처리속도와 네트워크, 파일 접근이 지연되는 경우가 생길 수 있습니다.

 

3. 도커를 이용

애플리케이션1 애플리케이션2
실행파일/lib 파일 실행파일/lib 파일
도커 엔진
호스트 운영체계
서버

- 도커를 설치하면 상단의 별도의 게스트 운영체제를 설치할 필요가 없이 바로 필요한 실행파일과 라이브러리와 애플리케이션을 설치할 수 있습니다.

- 도커 엔진이 호스트 운영체계의 자원을 공유하여 각각의 애플리케이션에 필요한 기능을 직접 제공합니다.

- 도커 엔진 상단에 설치된 각각의 실행 파일과 애플리케이션은 서로 격리된 가상공간입니다. 하지만 별도의 게스트 운영체제가 없어 가상화란 정의 대신 컨테이너라 불립니다.

- 장점: 별도의 게스트 운영체제를 사용하지 않고 Docker 엔진이 호스트 운영체제에서 필요한 리소스를 각각의 애플리케이션과 공유할 수 있게 작동합니다. 그러므로 처리속도와 네트워크, 파일 접근 속도가 빠르고 용량을 대폭 줄일 수 있습니다.

- 단점: 하이퍼바이저처럼 다양한 운영체제를 설치할 수 없습니다.