본문 바로가기
Docker

Docker #2 - 도커의 구조

by 혀닙 2023. 4. 5.

도커의 구조(Docker Architecture)

  • 도커는 _클라이언트-서버 구조_를 사용한다
  • 도커 클라이언트는 컨테이너를 빌드, 실행 및 배포하는 등의 무거운 작업을 수행하는 도커 데몬과 통신한다
  • 실행 위치
    • 도커 클라이언트과 데몬은 동일한 시스템에서 실행되거나
    • 원격의 데몬에 클라이언트를 연결할 수도 있다
  • 통신 방식
    • 클라이언트와 데몬은 UNIX 소켓이나 네트워크 인터페이스를 통한 _REST API_를 사용하여 통신한다.

architecture

 

 

도커 호스트(docker host)

  • 도커 엔진이 깔려있는 디바이스
  • 즉, 컴퓨터
  • 컨테이너 엔진이 컨테이너를 만들고 컨테이너를 제어
  • 그 기능을 도커에서 만든 것이 도커 엔진
 
도커 데몬(docker daemon = dockerd)
  • 도커 데몬은 도커 엔진의 핵심 요소
  • Docker API 요청을 수신하며 도커 오브젝트 관리 및 실행
    • 컨테이너 라이프 사이클(생성, 시작, 중지, 삭제 등)의 작업 수행
    • 컨테이너 이미지 관리
    • 외부 이미지 다운로드 및 빌드하는 작업 수행
    • 네트워크
    • 볼륨 등
  • 또한 다른 데몬과 통신하며 도커 서비스들을 관리하기도 한다
  • 도커 데몬은 실질적으로 도커 호스트에서 이미지를 만들고 이미지를 통해 컨테이너를 만드는 작업을 해줌
 
도커 오브젝트(docker object)
  • 도커 이미지, 컨테이너, 네트워크, 볼륨, 플러그인 등
 
도커 이미지(docker image)
  • 도커 컨테이너 생성을 위한 읽기 전용(read-only) 템플릿
 
도커 컨테이너(docker container)
  • 도커 이미지 기반으로 생성된 도커 이미지의 실행 가능한 인스터스(runnable instance of an image)
  • 앱 실행을 위한 모든 파일과 설정 정보를 포함하는 패키지

 

 

도커 클라이언트(docker client)

  • 도커 데몬 제어를 위해 도커에서 클라이언트 CLI를 제공
  • 사용자가 도커 데몬과 상호작용(interaction)을 하기 위한 주요 방법
  • 사용자가 docker 명령어를 사용하면 이 명령어를 docker deamon으로 보내서 실행
  • docker 명령어는 Dokcer API를 사용하며 도커 클라이언트는 하나 이상의 데몬과 통신할 수 있다.

 

 

레지스트리(docker registries)

  • 도커 이미지를 저장하고 관리하는 장소
  • docker hub
    • 디폴트 레지스트리
    • 누구나 접근 가능한 공개형 저장소
  • docker pull 또는 docker run 명령어 실행 시 설정된 레지스트리로부터 요청한 이미지를 가져온다
  • 예시
    • 도커 허브에서 이미지를 pull 받아 run하는 것은
    • 마치 앱 스토에서 프로그램을 다운로드 받아 실행하는 것과 같다

 

'Docker' 카테고리의 다른 글

Docker #1 - 도커와 컨테이너, 컨테이너 이미지  (0) 2023.04.05

댓글