Unless you were plugged in during the 2000s or earlier to one of the historical container projects discussed in Chapter 7 of this book, chances are that you never heard of software containers until Docker came along in 2013.
If that’s the case, you may also not be aware that Docker represents only one slice of the container landscape today. There are several other major container platforms out there that cater to entirely different use cases.
This chapter illuminates the container ecosystem in all of its diversity by discussing system containers and unikernels, technologies that complement but do not replace Docker.
As noted in Chapter 1, Docker is designed primarily to be an application-container platform. While it is possible to run an entire operating system inside a Docker container, Docker is rarely used for that purpose in production environments.
But other container platforms were designed for the express purpose of hosting a complete operating system, rather than individual applications. These are called system containers.
Since traditional virtual machines can also host complete operating systems, system-container technology may seem redundant. Yet system containers offer a few important advantages compared to virtual machines. These include the following: