Containers have become a corner stone of most cloud applications. Yet to many they remain a mysterious construct. If you like us feel uneasy to build software so fundamentally based on an abstraction you do not really understand this talk is for you.
We will explain how linux containers, rather than one single abstraction, are a novel combination of old and common Linux constructs:
- Tar files
- The Layered file system
- Mount points
- Namespaces
- Control groups
- Virtual network devices
We will demonstrate how these features come together to box-in a set of processes. To do so we will use a handful of shell commands to build something vaguely reminiscent of docker. We believe that understanding container basics plays and important part in building a top-to-bottom mental model of a cloud application.