Container Run Time
🚀 Container Runtime & Kubernetes – Simple Notes
1. What is a Container Runtime?
- A container runtime is the software that actually runs containers.
- Examples:
- Docker
- containerd
- rkt (now deprecated)
👉 Think:
“Runtime = engine that runs containers”
2. Early Kubernetes Design
- Initially, Kubernetes was built only for Docker
- Docker handled:
- Image pulling
- Container execution
- Networking setup
👉 Simple memory:
Kubernetes + Docker were tightly coupled
3. Problem with Docker Dependency
- Kubernetes depended only on Docker
- Other runtimes (like rkt) could not integrate easily
- Needed a standard interface
4. Solution: CRI (Container Runtime Interface)
- Kubernetes introduced CRI
- Purpose:
- Allow multiple runtimes to work with Kubernetes
- CRI acts as a bridge between Kubernetes and runtimes
👉 Memory trick:
CRI = “Common Runtime Interface”
5. OCI Standard (Industry Standardization)
- OCI = Open Container Initiative
- Defines standards for:
- Container images
- Runtime behavior
👉 Important:
- Docker was not OCI initially
- Later became OCI-compliant
👉 Memory:
OCI = “Rules for containers everywhere”
6. Move Away from Docker
- Kubernetes removed direct Docker support
- Reason:
- Docker was not a true CRI runtime
- Instead, Kubernetes supports:
- containerd
- CRI-O
👉 Key point:
Kubernetes doesn’t use Docker directly anymore
7. containerd (Default Runtime Today)
- Extracted from Docker
- Lightweight and OCI-compliant runtime
Tools in containerd:
ctr→ low-level CLInerdctl→ Docker-like CLI (easy to use)
👉 Memory:
containerd = “core Docker engine without extras”
8. Kubernetes CLI for Runtime – crictl
- Kubernetes provides:
crictl- Used to interact with CRI runtimes
Example usage:
crictl ps
crictl images
👉 Memory:
crictl = “kubectl for container runtime”
🔄 Full Flow (Easy to Remember)
🧠 Quick Revision Summary
- Runtime → runs containers (Docker, containerd)
- Kubernetes (early) → Docker only
- CRI → allows multiple runtimes
- OCI → standard rules
- Docker removed → not CRI-native
- containerd → main runtime now
- Tools:
ctr,nerdctl→ containerdcrictl→ Kubernetes runtime interaction
⚡ Ultra-Short Memory Version
Docker → Initial runtime
CRI → Standard interface
OCI → Common standard
containerd → Current runtime
crictl → Debug runtime in Kubernetes
If you want, I can turn this into:
- ✅ Flashcards for quick revision
- ✅ Interview Q&A format
- ✅ Diagram for visual learning
Just tell 👍