더북(TheBook)

도커 엔진(Docker Engine)은 도커의 관리 기능을 맡는 컴포넌트다. 로컬 이미지 캐시를 담당하므로 새로운 이미지가 필요하면 이미지를 내려받으며, 기존 이미지가 있다면 전에 내려받은 이미지를 사용한다. 호스트 운영체제와 함께 컨테이너와 가상 네트워크 등 도커 리소스를 만드는 일도 담당한다. 도커 엔진은 항시 동작하는 백그라운드 프로세스다(리눅스 데몬 또는 윈도 서비스와 같다).

도커 엔진은 도커 API를 통해 맡은 기능을 수행한다. 도커 API(Docker API)는 표준 HTTP 기반 REST API다. 도커 엔진의 설정을 수정하면 이 API를 네트워크를 경유해 외부 컴퓨터로부터 호출할 수 없도록 차단(기본 설정)하거나 허용할 수 있다.

도커 명령행 인터페이스(Docker command-line interface)(도커 CLI)는 도커 API의 클라이언트다. 우리가 docker 명령을 사용할 때 실제로 도커 API를 호출하는 것이 바로 도커 CLI다.

도커의 설계를 이해하면 도커를 더욱 잘 활용할 수 있다. 도커 엔진과 상호 작용할 수 있는 유일한 방법은 API를 통하는 방법뿐이다. 그리고 API의 접근 허용 범위를 몇 가지로 선택할 수 있다. CLI는 API에 요청을 전달하는 역할을 한다.

지금까지는 한 대의 물리 머신에서 컨테이너를 실행하고 관리하기 위한 목적으로 CLI를 사용했는데, 원격 컴퓨터에서 실행 중인 도커를 조작할 수 있도록 CLI가 요청을 전달하는 곳을 변경할 수 있다. 빌드 환경, 운영 환경, 테스트 환경 등 서로 다른 환경에서 동작하는 컨테이너를 관리하려면 이런 방법을 사용해야 한다. 도커 API는 운영체제와 상관없이 동일하므로 라즈베리 파이나 클라우드 환경, 리눅스 서버 등 어느 곳에 위치한 도커 엔진이라도 윈도가 설치된 노트북에서 이들을 제어할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.