Computer >> 컴퓨터 >  >> 시스템 >> Linux

도커(Docker)란 무엇인가? 컨테이너 기술의 개념과 작동 원리

Docker(도커)는 단일 운영체제(OS) 위에서 가상화된 애플리케이션 컨테이너를 생성, 배포, 관리할 수 있도록 지원하는 오픈소스 소프트웨어 플랫폼입니다. 다양한 연계 도구로 구성된 풍부한 생태계를 갖추고 있어 개발자와 운영팀 모두에게 필수적인 기술로 자리 잡았습니다.

Docker 컨테이너 기술은 2013년 처음 공개되었으며, 이후 컨테이너 관리 소프트웨어의 상용 에디션을 제공하고 오픈소스 버전의 주요 후원자 역할을 하기 위해 Docker Inc.가 설립되었습니다. 2019년 11월에는 Mirantis가 Docker 엔터프라이즈 사업부를 인수하며 회사의 구조가 재편되었습니다.

도커의 작동 방식

Docker는 컨테이너를 패키징하고, 프로비저닝하며, 실행하는 역할을 담당합니다. 컨테이너 기술은 운영체제 차원에서 제공되는데, 하나의 컨테이너에는 애플리케이션 서비스나 기능과 함께 이를 실행하는 데 필요한 라이브러리, 설정 파일, 의존성 등 모든 구성 요소와 파라미터가 함께 담깁니다. 각 컨테이너는 하나의 기반 운영체제가 제공하는 서비스를 공유합니다.

Docker 이미지에는 컨테이너 내부에서 코드를 실행하는 데 필요한 모든 의존성이 포함되어 있습니다. 따라서 동일한 운영체제를 사용하는 Docker 환경 간에 컨테이너를 옮기더라도 별도의 수정 없이 그대로 실행할 수 있다는 것이 큰 장점입니다.

가상머신(VM)과의 차이점

Docker는 OS 커널의 리소스 격리(resource isolation) 기능을 활용해 동일한 운영체제 위에서 여러 개의 컨테이너를 동시에 실행합니다. 이는 물리적 하드웨어 리소스의 추상화 계층 위에 완전한 운영체제와 실행 코드를 함께 담는 가상머신(Virtual Machine, VM) 방식과는 근본적으로 다른 접근법입니다. 덕분에 컨테이너는 VM보다 훨씬 가볍고 빠르게 기동될 수 있습니다.

다양한 플랫폼 지원

Docker는 처음에 Linux 플랫폼을 위해 개발되었지만, 이후 Microsoft Windows와 Apple macOS 등 비(非)Linux 운영체제에 대한 지원도 확대되었습니다. 또한 Amazon Web Services(AWS)와 Microsoft Azure에서 사용할 수 있는 Docker 버전도 제공되어 클라우드 환경에서도 폭넓게 활용되고 있습니다.

함께 읽으면 좋은 콘텐츠

이 글은 '컨테이너 관리란 무엇이며 왜 중요한가?' 시리즈의 일부입니다. 시리즈에는 다음과 같은 주제도 포함되어 있습니다.

  • 쿠버네티스(Kubernetes) 기초: 단계별 구현 튜토리얼
  • 컨테이너 보안 취약점 4가지와 예방 방법
  • Mesos vs. Kubernetes: 컨테이너 페더레이션 비교