One of the great Container advances in 2014 was the advent of Docker. However, many people still don't realise that Docker itself is really a Container application i.e. a consumer of containers technology rather than a provider of it (the containers currently used by Docker are provided by the Linux Kernel). This confusion comes about because Docker is really the first application in history to take advantage of containers for application compact packaging and transport in a manner that simply cannot be easily replicated with hypervisor technology. However, successful as it is, Docker merely represents the first real Containerized application and necessarily begs the question "what other containerized applications might there be in the future and how do we produce them?"
In order to answer the first part of the question, we will explore some potential uses of containers to yield things such as easy multi-tenancy for any application and also look at how NFV can be more easily done by containers using Firewall as a Service as an example. To answer the second half, we will introduce and describe libcontainer. Back at the end of 2013, both Parallels and Docker were working on container libraries with a view to supporting the creation of novel container applications. Parallels did so because as a supplier of container technoloy it saw its future tied to separating containers from hypervisors and Docker did so to try to untie itself from the LXC container orchestration system. Both projects discovered each other in April 2014 and agreed to a formal merger in June. That merger is now nearing completion within the libcontainer repository
and we will describe the resulting API and what this means both in terms of container orchestration systems (who are the first natural users) and for applications wishing to take advantage of container properties.
People attending this session will gain an idea of some of the alternative uses of containers, how to add containers to their application, and what the current state of the libcontainer API is and how it may be extended in the future.