본문 바로가기

Develop/Docker

Docker 의 이해

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

 

1. Docker의 사전적 의미
Docker의 사전적 의미는 항만 노동자를 뜻합니다. 항구에서 컨테이너를 나르는 것을 상상하시면 됩니다.
위 그림을 보시면 쉽게 이해할 수 있을 것 같습니다.
IT에서 말하는 Docker 와 무슨 상관일까 생각할 수 있지만, 컨테이너를 다루는 Docker의 기능과 같은 맥락에서 해석 할 수 있습니다.
Docker가 유명해진 가장 큰 이유 역시 컨테이너라는 점 때문입니다.
컨테이너에 대한 자세한 설명은 다음 게시글에서 설명하도록 하겠습니다.

2. Docker 의 특징
 Docker가 왜 많은 기업에서 쓰이고 있는지, 주목받는 솔루션인지에 대해서는 특징을 보면 쉽게 이해할 수 있습니다.
 - 하이퍼바이저(Hypervisor) 없이 리눅스 컨테이너(LXC) 기술을 바탕으로 애플리케이션을 격리된 상태에서 실행하는 가상화 솔루션
 - 플랫폼에 상관없이 실행될 수 있는 애플리케이션 컨테이너를 만드는 기술
 - 리눅스 컨테이너 기술을 바탕으로 애플리케이션을 격리된 상태에서 실행하는 가상화 솔루션
 - 리눅스 컨테이너 가상화 기술을 활용하여 애플리케이션 샌드박스를 자동 생성하는 기술

3. Docker의 장점
 - 빠르고 가벼운 가상화 솔루션
   : 호스트의 운영체제를 공유해 필요한 최소한의 리소스만 할당받아 동작하는 방식입니다.
     단일 호스트에서 다중 워크로드를 구동할 수 있기 때문에 하이퍼바이저 기반 가상화솔루션에 비해 훨씬 더 가볍게 가상화 환경을 구성할 수 있습니다.
 - 개발자에게 자유로운 개발보장
   : 개발 언어나 툴에 상관없이 어떠한 애플리케이션이라도 만들 수 있으며, Docker에서 만들어진 애플리케이션은 이동성이 좋아지고 어디서나 실행될 수 있습니다.
 - 뛰어난 보안성
   : 서비스가 해킹도더라도 격리되어있어 원래의 서버에 영향을 미치지 않는 구조로 되어있습니다.

Docker가 어떻게 많은 사람들에게 주목을 받을 수 있었는지, 어떻게 이목을 끌 수 있었는지의 가장 큰 이유는 CONTAINER 라는 개념 때문입니다.
컨테이너에 대해서는 다음에 소개해드리겠습니다.