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 : 컨테이너 실행 및 종료.
- 동작 방식
- 클라이언트로 부터 Docker 데몬 명령받음
- 컨테이너 d 가 클라이언트로부터 요청받은 이미지를 가져옴
- 컨테이너 d가 Run C에게 컨테이너 실행 요청
- Run C가 컨테이너 실행
- 컨테이너 유지는 컨테이너 d-shim이 함