Docker — Core Architecture Explained
Docker Engine:
Docker Client:
- Docker commands are executed here.
Daemon:
- It implements the rest API
Containerd:
- Handles container execution and lifecycle operations. (like start, stop, pause, unpause, etc)
OCI Layer:
- It interface with kernal. OCI creates the container and exist.
Kernel Internals:
We use two main building blocks when building containers:
1. Name Spaces:
- It is about isolation.
- It creates multiple OS based on the main OS(Operating System)
- It is bit like hypervisor and VM. (i.e allows resource sharing in virtually in isolated environment)2. Control Groups: (Cgroups)
- Helps in grouping of objects/processes.
- Controls resource usage of container by setting limits
- Also called as “Job Objects” in Windows server.