본문 바로가기

System/Docker

도커(Docker)의 기본 개념

반응형

Docker는 Docker, Inc가 출시한 오픈소스 컨테이너 프로젝트입니다.

기존의 VM(Virtual Machine)과 유사한 형태로 동작하지만 VM과 차이가 존재합니다.

공식 사이트에서 제공하는 VM과의 차이점에 대한 이해를 돕는 이미지입니다.

▼ Virtual Machine diagram

▼ Container diagram

위의 다이어그램이 VM이며 아래가 Docker입니다.

VM은 항상 별도의 Guest OS 위에서 동작하기 때문에 상당히 무겁습니다.

성능은 물론이고 OS가 완전히 설치되기 때문에 각각의 OS 용량까지 포함합니다.

반면에 Docker는 OS의 리소스를 공유하기 때문에 좀 더 빠르고 경량화되어 있습니다.

격리된 환경을 제공하기 때문에 의존성이 다른 컨테이너에 영향을 주지 않습니다.

Docker를 사용하면 개발자의 PC에서만 동작하는 'works on my machine' 문제를 해결할 수 있습니다.

다른 장비나 VM에서 컨테이너를 동일하게 생성하면 동일한 환경이 구축됩니다.

또한 Docker는 Immutable Infrastructure라는 개념을 구현하고 있습니다.

한 번 설정된 내용을 변경하지 않고 그대로 사용하고 새버전이 있을 때 기존 것을 버리고 사용하는 개념입니다.

그렇기 때문에 최소한의 설정만을 컨테이너 내부에 가지는 시스템을 구축하는데 최적화되어 있습니다.

Immutable Infrastructure는 클라우드 플랫폼이 제공하는 Auto-scaling에 적합합니다.

동일한 설정과 내용을 담고 있기 때문에 별도의 수정이 없이 빠르게 반영할 수 있습니다.

이러한 Docker의 특성으로 대규모 서비스 기반에서 인기를 얻고 있습니다.

Docker를 직접 사용해보면 좀 더 수월하게 해당 내용들을 이해할 수 있습니다.

Docker와 컨테이너의 용어 자체가 Docker의 기능을 잘 설명하고 있습니다.

다양한 소프트웨어를 실행할 수 있는 각각의 컨테이너를 다루는 것이 Docker의 기본 역할이라고 볼 수 있습니다.

반응형