We are Architect

15단계로 배우는 Docker와 쿠버네티스: 도커 아키텍처(2) 본문

Docker

15단계로 배우는 Docker와 쿠버네티스: 도커 아키텍처(2)

the best infra 2024. 12. 25. 01:06

 

* 도커의 아키텍처 

  • 도커는 컨테이너의 실행뿐만 아니라 다양한 기능을 제공한다. 
  • 물론 리눅스로도 컨테이너를 만들고 실행할 수 있지만 도커가 제공하는 기능이 더욱 개발에 있어서 사용자들에게 편리함을 준다.
  • 이러한 기능을 제공하는 도커는 도커 데몬 서버와 클라이언트 도커 커맨드, 그리고 이미지 보관소인 레지스트리로 구성된다.

도커 아키텍처

 

 

* 도커 아키텍처의 구성요소

  • 도커 데몬 : 클라이언트로부터 명령을 받아서 이미지, 컨테이너, 네트워크, 볼륨등을 관리하는 프로세스.
  • 도커 클라이언트 : 컨테이너 호스트에게 명령을 내리는 주체.
  • 이미지 : 컨테이너의 템플릿을 말한다. 컨테이너를 실행하기 위한 필요 파일들.
    • 이미지는 다른 이미지를 기반으로 만들어진다. 그리고 Dockfile이라는 요청 명령서에 따라서 만들어진다.
    • 하나의 이미지로 여러가지의 컨테이너를 실행시킬 수도 있다.
  • 컨테이너 : 하나의 프로세스로 서버로써의 역할을 담당. 
  • 도커 레지스트리 : 컨테이너의 이미지(템플릿)가 보관되는 곳(저장소)이다. 도커는 레지스트리를 기본적으로 도커 허브로 지정해 놓는다. 그러면 요청 시 도커 허브에서 이미지를 찾는다.
    • 퍼블릭 레지스트리 : 누구나 다 접근이 가능한 저장소 > Docker Hub, Quay
    • 프라이빗 레지스트리 : GitLab Container Resgistry
    • 클라우드 레지스트리 : AWS Elastic Container Resgistry, Azure Container Resgistry

 

 

* 도커 엔진 작동 방식

  • 구성요소
    • Docker 데몬 : 명령을 수하고 컨테이너 관리 및 다양한 엔진 자원들 관리.
    • containerd : 컨테이너의 수명 주기를 관리. 
    • containerd-shim : 컨테이너가 실행되면 유지.
    • Run C : 컨테이너 실행 및 종료.
  • 동작 방식
    1. 클라이언트로 부터 Docker 데몬 명령받음
    2. 컨테이너 d 가 클라이언트로부터 요청받은 이미지를 가져옴 
    3. 컨테이너 d가 Run C에게 컨테이너 실행 요청 
    4. Run C가 컨테이너 실행
    5. 컨테이너 유지는 컨테이너 d-shim이 함

도커 엔진 동작 흐름