Docker is a relatively young technology , initially released in March 2013, which offers a way to package an application with all of its dependencies into a standardized unit for software development. While this sounds a lot like what VMs have been offering for quite some time, one of the big differences between these two solutions is the architectural approach. Each VM comes with its own full–fledged Operating System as opposed to Docker containers that can share the same operating system kernel reducing the start times for each container, improving the RAM usage and offering a more lightweight portable solution than the VMs.
Since Docker’s initial release its ecosystem has grown rapidly and it now includes a variety of hosted or on premise products (i.e.: Docker Engine, Docker Hub, Docker Registry, Docker Swarm, Docker Compose) that support Docker’s usage throughout the development pipeline to production. The Docker community has also grown very fast and many solutions have emerged to support various use cases throughout the industry and even existing technologies have added support for Docker containers.
Cake DevOps team successfully adopted Docker for different use cases such as:
Multi-region microservices packaged as Docker containers deployed on top of Mesos Clusters
Containerised CICD pipeline
Containerised applications deployed on AWS’ EC2 Container Service
Deploying private Docker Registry