Container development
A container is a portable package: code, runtime, libraries, and settings. It shares the host kernel, so it starts fast and uses fewer resources than a full VM.
Main pieces
- Image — the immutable package you build and ship.
- Runtime — starts and stops containers (e.g. Docker, containerd).
- Registry — where images are stored and pulled from.
- Orchestration — schedules many containers in production (e.g. Kubernetes).
Containers vs VMs
- Containers isolate processes; VMs isolate hardware with a guest OS.
- Containers are lighter and denser; VMs give stronger isolation.
- Containers start in seconds; VMs often take longer to boot.
Namespaces
Linux namespaces give containers their isolation: process IDs, network, mounts, users, and more. That is why the same image can run predictably on different hosts.