Kubernetes and Docker Enterprise 

Unless you have been hiding under a rock, you have probably heard about Kubernetes. Too many times I have heard (uninformed) members of the technology community say we don't use Docker, we use Kubernetes. This is a little naive since the vast majority of clusters running Kubernetes orchestration are doing so with the Docker Engine. 

Orchestrators allow developers to wire up individual container nodes into a cluster to improve scaling and availability, and reap the benefits of self-healing and distributed/microservice application management. As soon as multi-service applications needed to coordinate more than one container to run, orchestration became a thing. Orchestrators  allows containerized application developers to specify how their collection of containers works together to form an application. Then, they later deploy the application using this specification to schedule the required containers across a cluster of (usually Docker) hosts.

Early on, born-in-the-cloud startups that were running at scale and usually deploying microservices became aware of a need for orchestration. Hence, the brilliant minds at Google created what has become the Kubernetes orchestration framework and later created an independent body to mange it, the Cloud Native Computing Foundation (CNCF), with Kubernetes as the CNCF's cornerstone project. Meanwhile, the Docker community started working on its own orchestration project called Swarmkit.