Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-18 04:37
관리 메뉴

nomad-programmer

[DevOps/Docker] 컴포넌트 본문

DevOps/Docker

[DevOps/Docker] 컴포넌트

scii 2020. 11. 17. 22:46

Docker는 몇 개의 컴포넌트로 구성되어 있다. 핵심 기능이 되는 Docker Engine을 중심으로 컴포넌트를 조합하여 애플리케이션 실행 환경을 구축한다. Docker는 명령줄에서 조작하는 것(CLI)이 중심이다.

Docker Engine (Docker의 핵심 기능)

Docker 이미지를 생성하고 컨테이너를 기동시키기 위한 Docker의 핵심 기능이다. Docker 명령의 실행이나 Dockerfile에 의한 이미지도 생성한다.

Docker Registry (이미지 공개 및 공유)

컨테이너의 바탕이 되는 Docker 이미지를 공개 및 공유하기 위한 레지스트리 기능이다. Docker의 공식 레지스트리 서비스인 Docker Hub도 이 Docker Registry 를 사용하고 있다.

Docker Compose (컨테이너 일원 관리)

여러 개의 컨테이너 구성 정보를 코드로 정의하고, 명령을 실행함으로써 애플리케이션의 실행 환경을 구성하는 컨테이너들을 일원 관리하기 위한 툴이다.

Docker Machine (Docker 실행 환경 구축)

로컬 호스트용인 VirtualBox를 비롯하여 Amazon Web Services EC2나 Microsoft Azure와 같은 클라우드 환경에 Docker의 실행 환경을 명령으로 자동 생성하기 위한 툴이다.

Docker Swarm (클러스터 관리)

Docker Swarm은 여러 Docker 호스트를 클러스터화하기 위한 툴이다. Docker Swarm에서는 클러스터를 관리하거나 API를 제공하는 역할은 Manager가, Docker 컨테이너를 실행하는 역할은 Node가 담당한다. 또한 오픈소스인 Kubernetes도 이용할 수 있다.


Docker를 둘러싼 업체/OSS의 동향

Docker는 Google이나 Amazon과 같은 클라우드 업체를 비롯하여 Red Hat, Microsoft, IBM 등과 같은 시스템 개발을 지지해 온 대부분의 대형 업체 및 널리 이용되고 있는 오픈소스 등이 지원하고 있다. 다양한 조직이나 시스템과 연계하여 사용할 수 있는 소프트웨어의 특성을 상호운용성(Interoperability)이라고 한다.

또한 주요 퍼블릭 클라우드 업체는 컨테이너 실행 환경의 풀 매니지드 서비스를 제공한다. 풍부한 서비스를 제공하고 업무 시스템에서의 기동 실적이 많은 클라우드 서비스인 Amazon Web Services(AWS)의 경우 'Amazon EC2 Container Service'로 Docker 실행 환경의 매니지드 서비스를 제공하고 있다. 또한 Microsoft의 Azure가 제공하는 'Azure Container Service'는 컨테이너 오케스트레이션 툴을 선택할 수 있는 것이 특징이다. 그리고 Google은 YouTube 등을 제공하는 자사 내 기반은 모두 컨테이너 기술을 사용하여 구축하고 있다. 그 노하우를 살려서 오픈소스인 Kubernetes를 손쉽게 이용할 수 있는 매니지드 서비스가 'Google Kubernetes Engine'이다.

Docker는 업체뿐만 아니라 대부분의 오픈소스와의 연계도 간단하다. 오픈소스의 지속적 인티그레이션 툴인 'Jerkins'와 연계하여 테스트를 자동화할 수도 있다. 또한 애플리케이션 개발자에게는 익순한 'GitHub'와 연계하여 GitHub 상에서 소스가 관리되는 Dockerfile을 Docker Hub와 연계하여 자동으로 빌드하고 Docker 컨테이너의 바탕이 되는 Docker 이미지를 생성할 수도 있다.

Comments