이번 포스트에서는 도커 아키텍쳐(Docker Architecture)를 통해서 도커가 내부적으로 어떻게 동작을 하는지 알아보자.

도커는 기본적을 클라이언트-서버 구조를 가지고 있다.
클라이언트에서 명령어를 통해서 도커 데몬에게 전달을 하고 도커 데몬이 컨테이너를 관리한다.
이를 조금 더 상세히 살펴보자
도커 데몬은 클라이언트가 도커를 관리할 수 있는 API를 제공을 해준다.
이러한 API를 통해서 클라이언트는 도커 데몬에게 자신이 원하는 도커 기능을 요청할 수 있다.
API는 도커 공식문서에 가면 볼 수 있다.
그런데 이러한 API는 쿼리파라미터며 보내기 여간 복잡한 것이 아니다.
그래서 도커는 도커CLI를 제공해준다.
CLI는 Commanfd Line Interface로 명령어를 통해서 요청사항을 도커 데몬에게 전달을 한다.
CLI는 명령어를 입력 받으면 이를 API형식을 변경을 해서 도커 데몬에게 전달을 한다.
도커 데몬이 결과를 반환하는 것도 CLI가 받아서 유저가 보기 편하게 테이블 형태로 변환을 결과를 보여준다.
이러한 CLI를 통해서 도커를 쉽게 사용할 수 있다.
그렇다면 도커 데몬은 어떠한 역할을 할까?
결론부터 도커 데몬은 말하면 실제로 컨테이너는 관리해주는 서버이다.
도커 데몬은 사용자가 도커를 사용할 수 있도록 API를 제공해준다.
아까 위에서 설명한 API가 도커 데몬이 제공을 해주는 API이다.
도커 데몬은 호스트OS위에서 지속적으로 실행이 되고 있는 소프트웨어이다.
그래서 클라이언트 측에서 요청을 받은 API를 통해서 호스트OS의 커널에 접근을 해서 원하는 컨테이너 관리를 해주고 이 결과를 JSON으로 반환을 해준다.
이번 포스트에서는 도커의 아키텍쳐에 대해서 알아보았다.
도커는 클라이언트-서버 구조를 가지고 있으며, 도커 데몬은 컨테이너 관리와 사용자를 위한 API를 제공을 한다.
도커 CLI는 사용자에게 좀 더 편리한 환경을 제공하기 위해서 명려엉를 API로 변경을 해서 도커 데몬에게 연결을 해주는 역할을 한다.
이러한 아키텍쳐를 알아야 도커를 확실하게 사용을 할 수 있다.
그러니 꼭 알아두자.
이제 다음 포스트에서는 이미지와 컨테이너에 대해서 알아보고자 한다.
이 두 개념은 도커를 사용하기 위해서는 꼭 알아야 하는 개념이다.