본문 바로가기

클라우드 이론

Docker

Docker를 이해하기 위해서는 그 기본이 되는 Container의 개념을 먼저 이해해야 한다.

 

Container

클라우드상의 자원은 한정적이기 때문에 효율적으로 사용하기 위해 여러 도구들을 사용한다. 이를 위해 container라는 개념을 이용하게 된다. 아래는 구글 클라우드에서 정의하는 컨테이너이다.

 

"컨테이너는 소프트웨어 서비스를 실행하는 데 필요한 특정 버전의 프로그래밍 언어 런타임 및 라이브러리와 같은 종속 항목과 애플리케이션 코드를 함께 포함하는 경량 패키지입니다."

 

기존의 VM에서 서비스를 실행시키던 것과 비교하자면 OS가 포함되지 않았다 라는 커다란 차이점이 존재하게 된다. 정확히는 컨테이너의 경우 호스트 OS의 커널을 공유하며 호스트OS와 다른 부분만 패키지에 포함 하지만, VM은 OS전체를 포함 및 설치해야 한다. 컨테이너는 OS수준에서의 가상화, VM은 하드웨어 수준의 가상화라 생각할 수 있다. 이러한 이유로 컨테이너를 사용하였을 때 컴퓨팅 자원을 절약할 수 있고 빠른 배포가 가능하게 해 준다.

VM과 컨테이너 비교. 컨테이너의 경우 Host OS 위에 Container Engine 레이어를 추가하여 그리는 경우도 있다.

 

Docker

이러한 컨테이너들의 실행, 관리, 배포 등 여러 기능들을 제공하는 도구 중 유명한 것이 Docker이다. 최근 하나의 커다란 어플리케이션이 아닌 작은 서비스 단위로의 개발(Micro Service Architecture)이 늘어나면서 컨테이너의 이점이 부각되었고 자연스럽게 Docker를 채용하는 사람/회사들이 늘어나게 되었다.

항만을 뜻하는 Dock 에서 나왔다.

Docker의 기능, 사용법 등은 실습 포스팅에서 자세하게 설명하도록 하겠다.

Container에 대해 추가적인 설명이 필요하면, Docker의 "what is a container?" (https://www.docker.com/resources/what-container/)를 읽어보면 좋다.

'클라우드 이론' 카테고리의 다른 글

Kubernetes 이론 (2)  (0) 2023.10.23
Kubernetes 이론 (1)  (0) 2023.10.16