도커의 구조(Docker Architecture)
- 도커는 _클라이언트-서버 구조_를 사용한다
- 도커 클라이언트는 컨테이너를 빌드, 실행 및 배포하는 등의 무거운 작업을 수행하는 도커 데몬과 통신한다
- 실행 위치
- 도커 클라이언트과 데몬은 동일한 시스템에서 실행되거나
- 원격의 데몬에 클라이언트를 연결할 수도 있다
- 통신 방식
- 클라이언트와 데몬은 UNIX 소켓이나 네트워크 인터페이스를 통한 _REST API_를 사용하여 통신한다.
- 출처 : [공식문서] https://docs.docker.com/get-started/overview/
도커 호스트(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 |
---|
댓글