4.2 도커란?
도커는 2013년 3월 dotCloud 설립자이자 CEO인 솔로몬 하익스(Solomon Hykes)가 만든 리눅스 기반의 인기 있는 오픈 소스 컨테이너 엔진이다. 도커는 애플리케이션 내에서 컨테이너를 시작하고 관리하는 일을 담당하는 ‘있으면 좋은’ 기술로 시작했다. 이 기술로 VM 등 다른 하드웨어 자원을 몰라도 물리 머신의 자원을 여러 컨테이너와 공유할 수 있었다.
IBM, 마이크로소프트, 구글 등 대기업이 도커를 지원한 덕분에 이 새로운 기술이 개발자의 기본 도구로 전환될 수 있었다. 오늘날 도커는 계속 성장하고 있으며, 현재 컨테이너로 된 소프트웨어를 서버에 배포하는 데 널리 사용되는 도구 중 하나다.
컨테이너(container)는 애플리케이션이 실행하는 데 필요한 모든 것을 제공하는 논리적 패키징 메커니즘을 의미한다.
도커의 동작 방식을 더 잘 이해하려면 도커 엔진(Docker Engine)이 전체 도커 시스템의 핵심부라는 것을 알아야 한다. 그렇다면 도커 엔진은 어떤 것일까? 도커 엔진은 클라이언트-서버 패턴 아키텍처를 따르는 애플리케이션으로 호스트 머신에 설치되며 서버, REST API, 명령줄 인터페이스(CLI)라는 세 가지 중요한 구성 요소를 포함한다. 그림 4-2는 다른 구성 요소와 함께 도커의 구성 요소를 보여 준다.
▲ 그림 4-2 도커 아키텍처는 도커 클라이언트, 도커 호스트, 도커 레지스트리로 구성된다