서버 운영을 클라우드 서버로 운영하면서 VM(Virtual Machine) , 가상화(Virtualization)등의 용어 및 개념은 이제는 익숙해졌습니다.
하지만 최근 도커(Docker) , 컨테이너(Containers)등의 용어를 보게 되면서 이러한 용어의 개념은 무엇일까? 궁금해졌습니다.
AWS의 가장 베이직 클라우드 서비스라고 할 수 있는 라이트세일(Light sail) 서비스에서도 새롭게 컨테이너(도커-Docker) 서비스를 개시한 것으로 볼 때 현재는 매우 보편화된 개념이 되어가고 있다고 하겠습니다.
도커(Docker)는 무엇인가?
도커는 고유기술을 지칭하는 개념보다는 소프트웨어 이름이 해당 기술의 대명사 처럼 자리 매김한 것으로 보시면 됩니다. 복사기 라는 장치 분류 용어 대신 “제록스” 라는 회사 브랜드가 더 유명한 개념으로 생각할 수 있는 것 입니다.
정리하면 도커는 리눅스 컨테이너를 만들고 사용할 수 있도록 하는 컨테이너 화 기술이라고 입니다.
컨테이너 화 기술 소프트웨어는 2000년 FreeBSD jail , Control groups , LXC , Solaris Zones 등 매우 다양하게 선보였지만 결국 최종적으로 도커(Docker)가 리눅스 컨테이너화 기술 소프트웨어 시장을 평정했다고 보시면 되겠습니다.
이미 2016년 설문조사에서 도커는 관련 분야 개발에 사용되는 비중이 90% 수준으로 적용되고 있으며 실제 운영 환경에서 사용되는 비율도 58%에 달한다는 발표가 있었습니다. 이 시점에서 이미 5년이 더 지났고 뚜렷한 경쟁자가 없는 상황에서 도커(Docker)의 시장 점유율은 더욱 상승했을 것으로 예상됩니다.
가상화(Virutualization) vs 컨테이너(Containers , 도커)의 차이점은?
엄밀하게 말하면 컨테이너 기술 역시 가상화 기술이라고 할 수 있습니다. 하지만 기존의 가상화 개념이 OS를 가상화 하는 개념 이였다면 컨테이너는 프로세스를 컨테이너로 격리하여 사용하는 개념입니다.
즉 OS가상화가 VMware 처럼 호스트 운영체제 하에서 게스트 OS 전체를 가상화 하는 방식이기 때문에 하드웨어 자원 소모가 심하고 과부하를 유발하게 됩니다. 리눅스에서 윈도우를 구동 시키는 경우등을 생각해보시면 리눅스만 구동 시키는 경우보다 보다 높은 하드웨어를 요구하게 될 것입니다.
컨테이너는 필요한 프로세스를 구동하기 위한 리소스를 컨테이너 단위로 묶어서 관리하고 해당 프로세스 구동에 필요한 부분만 구동하기 때문에 하드웨어 리소스 사용이 매우 효율적으로 움직인다고 하겠습니다.
이러한 리눅스 컨테이너화 소프트웨어 시장에서 도커(Docker)가 주도권을 가지게 된 가장 큰 이유는 경쟁자들을 압도하는 이미지, 컨테이너 관리 기능 과 대규모 사용자 층을 확보하면서 형성된 도커 생태계를 잘 관리한 부분이 크다고 하겠습니다.
예를 들면 도커에서 무료로 운영 중인 도커 허브에 등록된 사용자 등록 생성 이미지는 수 십만 개가 넘으며 다운로드 수 역시 수 억회에 달한다고 합니다.
누구나 이미지를 생성하고 배포할 수 있는 생태계가 사용자 층 확대를 더욱 가속화 시키고 있다고 하겠습니다.
도커 홈페이지 바로가기 : https://www.docker.com/
보다 자세한 도커에 관한 정보는 상기 홈페이지 주소를 방문하시면 확인 하실 수 있습니다.