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

Containers vs VMs

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.