What is a container?
A container is a small, lightweight, standardized piece of code that is designed to be modular and portable, allowing teams to deploy it easily on any computing environment. Containers are called such because they contain an application’s code along with the code’s dependencies that allow it to run, such as system libraries and various settings. Containers do not contain operating system code, however, and they operate on top of a shared OS environment, making them small and fast. The typical container is just a few hundred megabytes in size, whereas the typical virtual machine (which does include operating system code) can be 80 gigabytes or more.
Containers are a key element in the development of microservices, which break down code into single-function modules that are loosely coupled and independently deployable. Conceptually, microservices allow for rapid development and easier management of complicated applications. IDC recently predicted that “by 2023, more than 500 million new logical applications will be created — equivalent to the number of applications created in the past 40 years,” and that containers would be a critical component of that trend.
Container technology has congregated around two major platforms, Docker and Kubernetes. In addition, all of the major cloud service providers offer a range of tools designed to streamline container development, deployment and management.