The idea, without the marketing.
WHAT IT IS
A process running on the host, isolated so it sees only its own files, processes and network.
WHAT PROVIDES THAT ISOLATION
Features of the Linux kernel: namespaces for what a process can see, and control groups for what it can consume.
WHAT IT IS NOT
A virtual machine.
WHY THAT DISTINCTION MATTERS
There is no separate kernel, no boot, and almost no overhead.
WHAT A VIRTUAL MACHINE DOES
Emulates hardware and runs a complete operating system.
WHAT THAT COSTS
Memory, disk and startup time, per machine.
WHAT A CONTAINER COSTS
Almost nothing beyond the process itself.
WHAT THAT ENABLES
Starting in under a second Running many on one host Identical behaviour between a developer's machine and production
WHY THAT LAST POINT IS THE REAL BENEFIT
The dependencies travel with the application.
WHAT PROBLEM THAT SOLVES
Software that works on one machine and not another.
WHAT CONTAINERS DO NOT SOLVE
A badly designed application Persistence, which needs deliberate handling Security, by themselves
WHY THAT LAST POINT NEEDS SAYING
Isolation is real but not absolute, and the kernel is shared.
WHAT TO UNDERSTAND BEFORE GOING FURTHER
That a container is a process, not a machine.