https://iximiuz.com/en/posts/implementing-container-runtime-shim/
구조
- dockerd
- Container Engine- 개발자 경험에 집중
- High-level task 처리
- login / build / inspect / attach - Swarm과 같은 orchestration 지원
- Docker swam : docker engine의 cluster
https://docs.docker.com/engine/swarm/
- containerd
- Container Manager- High-level runtime
- container runtime을 실행
- 네트워크 관리
- containerd-shim
- shim : 틈을 메우는 나무/쇠- low-level runtime에 대한 abstraction 제공
- container가 살아있을 때까지 살아있음
- container의 stdin/stdout 등 stream 관리
- docker attach
- runc
- OCI runtime- container 생성/실행을 위한 command-line tool
- container 프로세스를 실행(fork/exec) 후 종료됨
- container
- 평범한(regular) Linux process
- dockerd보다 오래 살아있음
- virtualized OS 환경에서 동작
- File System / Network / PID / UID / namespaces / veth / bridge network devices
- Engine과 Runtime의 차이
- Engine
- Runtime 안에 포함됨
- 실질적인 low-level 동작의 주체 - Runtime
- Engine을 포함
- API를 통해 기능을 제공 (Engine을 활용하여 기능 수행)
- Engine
https://medium.com/@misbahulalam/uncover-the-javascript-engine-vs-runtime-6556ef449634
'데이터 엔지니어링 > Docker' 카테고리의 다른 글
[Docker] Base Image (Scratch) (0) | 2022.09.19 |
---|---|
[Docker] Container의 Lightweight (컨테이너가 가벼운 이유) (0) | 2022.07.14 |
[Docker] Docker 정리 (정의/아키텍쳐) (0) | 2022.07.12 |
[Docker] 윈도우 docker 설치 (0) | 2022.06.16 |
[Docker] 명령어 모음 (0) | 2022.05.13 |