Server Guest OS Bins/ Libs App A’ Guest OS Bins/ Libs App B Guest OS Bins/ Libs App A’ Docker Host OS Server Bins/Libs App A Bins/Libs App B App B’ App B’ App B’ VM Container Containers are isolated, but share OS Kernel and, where appropriate, bins/ libraries Guest OS Guest OS … result is significantly faster deployment, much less overhead, easier migration, faster restart. isolation is achieved with OS components like cgroups, namespaces, secomp, SELinux, apparmor etc.
Cluster Data Center Static Website Web Front End Background Workers User DB Analytics DB Queue API Endpoint Development Test & QA Production Scale Out The deployment challenge
transporting/ storing Do I worry about how goods interact (e.g. coffee beans next to spices) Can I transport quickly and smoothly (e.g. from boat to train to truck)
for transporting/storing Do I worry about how goods interact (e.g. coffee beans next to spices) Can I transport quickly and smoothly (e.g. from boat to train to truck) …in between, can be loaded and unloaded, stacked, transported efficiently over long distances, and transferred from one mode of transport to another A standard container that is loaded with virtually any goods, and stays sealed until it reaches final delivery.
all cargo now shipped in a standard container • Order of magnitude reduction in cost and time to load and unload ships • Massive reduction in losses due to theft or damage • Huge reduction in freight cost as percent of final goods (from >25% to <3%) • massive globalizations • 5000 ships deliver 200M containers per year
frontend User DB Queue Analytics DB Development VM QA server Public Cloud Contributor’s laptop Multiplicity of Stacks Multiplicity of hardware environments Production Cluster Customer Data Center Do services and apps interact appropriately? Can I migrate smoothly and quickly …that can be manipulated using standard operations and run consistently on virtually any hardware platform An engine that enables any payload to be encapsulated as a lightweight, portable, self-sufficient container…
Queue Analytics DB Development VM QA server Public Cloud Contributor’s laptop Multiplicity of Stacks Multiplicity of hardware environments Production Cluster Customer Data Center Do services and apps interact appropriately? Can I migrate smoothly and quickly Operator: Configure Once, Run Anything Developer: Build Once, Run Anywhere (Finally)
and run an application in a loosely isolated environment called a container. • Encapsulate your applications (and supporting components) into Docker containers • Run • The isolation and security allow you to run many containers simultaneously on a given host. • Because of the lightweight nature of containers, which run without the extra load of a hypervisor, you can run more containers on a given hardware combination than if you were using virtual machines. • Docker provides tooling and a platform to manage the lifecycle of your containers: • Ship • Distribute and ship containers to your teams for further development and testing • Deploy applications to your production environment, whether it is in a local data center or the Cloud
Whole ecosystem was built. • Now moving towards standards • OCI (Open Container Initiative) • Runtime Specs • Image Specs • Docker libcontainer and image specs are donated for both. • No lock-in.
Get up and running on Docker in minutes •Leverages Hyper-V (Windows) or xhyv (Mac) −Docker for Windows requires Windows Pro 10, Enterprise, or Education •Full API / CLI compatibility •OS integration for increased stability and speed
with new primitives to support containers •Deep integration with 2+ years of engineering collaboration in Docker Engine and Windows Server •Microsoft is top 5 Docker open source project contributor and a Docker maintainer Infrastructure Windows Server 2016 Bins/Libs App Docker Engine Bins/Libs App Bins/Libs App Docker + Windows Server = Windows Containers