리눅스 시스템과 관련된 프로젝트를 진행하면서 도커라는 기술에 대해서 듣게 되었다.
처음에 도커라는 것이 뭔지 몰랐는데 컨테이너 기술 중 대표적인 것이라고 한다.
그래서 컨테이너 기술에 대해 살펴보고자 이렇게 정리해본다.
1. 컨테이너 기술이란?
컨테이너 기술이란 쉽게 말해 App과 필요한 library, binray, config 등을 패키지로 묶어 배포하는 것을 말한다. 즉, 묶어서 하나의 실행 환경을 구성할 수 있도록 하는 것이다. 운영체제를 제외한 실행에 필요한 모든 환경이 따라오므로 다른 컴퓨팅 환경에서도 오류를 최소화할 수 있다. 운영체제를 제외한 모든 환경을 패키지로 제공하기에 OS 레벨의 가상화라고도 부른다.
cf) HW 레벨의 가상화
참고로, 컨테이너 기술은 OS 레벨의 가상화라고 불리면서 동시에, HW 레벨의 가상화와 구분되기도 한다. 이러한 HW 레벨의 가상화에 대해서 살펴보면 우리가 Device 위에 가상머신(VM)을 올리고 그 위에서 App을 동작시키는 경우를 생각해보면 된다. 이 때, 서버에 하이퍼바이저를 설치하고 그 위에 가상 OS와 App을 패키징한 가상머신(VM)을 올려서 실행하는 것이다. 하이퍼바이저는 OS와 응용 PR을 분리하는 프로세스를 뜻한다. 즉 OS와 응용 PR을 분리한 뒤 그 위에 VM을 설치해서 동작한다.
2. VM과의 차이점
가장 큰 차이점은 컨테이너 기술은 시스템 자원을 적게 잡아먹는다. 가상의 운영체제를 구성해야 하는 VM과 달리 컨테이너 기술은 실행 환경을 패키징하기에 상대적으로 시스템 자원을 적게 요구한다. 실제로도, 약 10배 이상의 실행 개수를 보장하기도 한다. 또한 성능적인 측면에서도 VM에 비해 우수하다.
그렇지만 VM은 보안 측면에 있어 강점이 있다. VM은 가상 OS를 통해 분리되기에 보안적인 측면에서 강점이 있다. 컨테이너 기술은 하나의 OS가 뚫리면 한 OS를 통해 App을 실행하기에 보안적인 측면에서 큰 문제를 야기하기도 한다.
그래서 기업에서는 실제로 컨테이너와 VM을 혼용하여 사용하기도 한다.
http://www.ciokorea.com/insider/36713
http://www.itworld.co.kr/news/103469
'Archived(IT) > 배경지식_기술' 카테고리의 다른 글
MVC 패턴 1, 패턴 2 (0) | 2019.11.07 |
---|---|
UI/UX 의미 (0) | 2019.11.04 |
웹 서버 Nginx_Apache (0) | 2019.11.02 |
Rest와 Rest API (RestFull API) (0) | 2019.10.31 |
DevOps (0) | 2019.10.31 |