도커의 역할
- 커널의 컨테이너 가상화 기술을 사용자가 손쉽게 활용할 수 있게 하는 것
도커 아키텍처
- 컨테이너 엔진: 사용자의 요청을 받아 컨테이너를 관리하는 역할
- 컨테이너 런타임: 직접 커널과 통신하며 실제로 격리된 공간을 만드는 역할
- 도커는 runc 라는 컨테이너 런타임을 사용
- runc 는 OCI (Open Container Initiative) 를 준수함
- 무조건 runc 를 사용해야 하는 것은 아니지만 도커에서 기본으로 사용하는 컨테이너 런타임임
- 리눅스 커널 버전마다 사용법이 다른데, runC는 cgroup, namespace 와 같은 기술을 버전에 구애받지 않고 사용할 수 있도록 LXC 혹은 libvirt 를 사용하여 간접적으로 관리함
도커 클라이언트 서버 구조
- 도커는 클라이언트 서버구조로 동작한다.
- 사용자가 명령어를 입력하면 CLI 는 API 에 맞게 요청을 만들어 도커 데몬에 전달한다.
- 도커 데몬은 컨테이너 런타임을 통해 컨테이너를 조작하고 CLI 로 응답을 전달한다.
- 도커는 보통 JSON 형태로 응답을 한다.
- CLI 에서는 CLI 가 이를 보기 좋은 방식으로 다시 변경하여 이용자에게 보여준다.
- Host OS 는 도커 데몬과 소통하며 컨테이너를 관리한다.
반응형
'인프라 > 도커' 카테고리의 다른 글
도커 컨테이너의 라이프사이클 (Docker container lifecycle) (0) | 2024.02.06 |
---|---|
컨테이너 런타임 (Container Runtime) 이란 무엇인가? 그리고 runc (0) | 2024.02.04 |
컨테이너 가상화란? (0) | 2024.02.04 |
LXC (Linux Container, 리눅스 컨테이너) 란? (0) | 2024.02.04 |
하이퍼바이저 (Hypervisor) 란 무엇인가? (1) | 2024.02.04 |