[Docker] 도커의 구조 (서버와 클라이언트)
Published in
Jan 1, 2021
도커의 구조는 크게 두 가지로 나뉩니다.
서버로서의 도커
실제로 컨테이너를 생성하고 실행하며 이미지를 관리하는 주체는 도커 서버이고, 이는 dockerd 프로세스(도커 엔진의 프로세스는 /usr/bin/dockerd 파일로 실행되고 있습니다.)로서 동작합니다. 도커 엔진은 외부에서 API 입력을 받아 도커 엔진의 기능을 수행하는데, 도커 프로세스가 실행되어 서버로서 입력을 받을 준비가 된 상태를 도커 데몬이라고 이야기 합니다.
클라이언트로서의 도커
도커 데몬은 API 입력을 받아 도커 엔진의 기능을 수행하는데, 이 API를 사용할 수 있도록 CLI (Command Line Interface)를 제공하는 것이 도커 클라이언트입니다. 사용자가 docker 로 시작하는 명령어를 입력하면 도커 클라이언트를 사용하는 것이며, 도커 클라이언트는 입력된 명령어를 로컬에 존재하는 도커 데몬에게 API 로서 전달합니다. 이때 도커 클아이언트는 /var/run/docker.sock
에 위치한 유닉스 소켓을 통해 도커 데몬의 API를 호출합니다. 도커 클라이언트가 사용하는 유닉스 소켓은 같은 호스트 내에 있는 도커 데몬에게 명령을 전달할 때 사용됩니다.
출처: 시작하세요 도커(용찬호 지음)