Video recording and production done by OpenStack Foundation.
Containers are a much talked about, much hyped technology, but what exactly are they and how do they work? What is the different between an Application Container and an Operating System container? This talk will try and take the technically adept beginner through the details of what containers on Linux are, how they're brought up, where the component technologies, like Cgroups and Namespaces fit in and how and why containers differ from hypervisors.
We'll begin by covering ancient history: the BSD chroot() system call and why this lead to the first idea of containing service based applications (and how this lead to the mount namespace), followed by a brief digression into IBM DPAR and Solaris Zones, Moving on to the Parallel developments of beancounters and cgroups and finally describing the unified container interface in Linux today consisting of the current set of Cgroups and Namespaces. Along the way, we'll describe how container guests can directly interact with the host operating system and vice versa and why this is important for application containers. How operating system containers effectively run different versions of Linux (like running ubuntu on RHEL) and why they differ from application containers. Finally, for completeness, we'll look at applications which are themselves integrated with container technology and what they do with it to enhance their own functions.