Docker OrchestrationProduct Brief
Ensuring Distributed Application Portability
The promise of distributed applications is to increase
the rate of innovation while decreasing the rate the
issues due to an application architecture that loosely
couples many different small applications together.
Each small application or service can be changed
independently of the others. The Docker
orchestration products empower developers and IT
operations to easily build, ship and run a new
generation of fully portable distributed applications.
Seamless application portability means that a
developer can leverage the same orchestration tooling
when building and shipping the application from dev
to build to test while IT operations can use the same
tooling to run, manage and move the application
across environments and clouds.
Docker Machine
Docker Machine is an orchestration tool that enables
developers and IT operations to go from “zero to
Docker” in minutes. A single command automates
the multiple steps of the Docker setup process by
provisioning the “host infrastructure” (e.g. VM for a
Docker Engine) and installing Docker Engine on that
host. Organizations can quickly and easily deploy
Docker in their environment. Docker Machine
supports drivers to all major infrastructure providers
to automatically provision environments locally, in the
datacenter and in the cloud.
Docker Swarm
Docker Swarm is an orchestration tool that provides
native clustering of Docker Engines, scheduling
capabilities of application containers and integrations
with ecosystem partners. Swarm provides a uniform
developer experience at any scale, as developers build
and ship applications, while providing the operational
freedom to choose infrastructure and tooling
optimized for the application.
The native clustering and scheduling capabilities of
Swarm can scale with the application development
lifecycle from one laptop to spanning hundreds of
hosts in production. Any number of Docker Engines
into a Swarm, organizations are able to pool the
resources across those Engines into a single virtual
Engine to run application containers. The scheduling
capabilities of Swarm determine the right host in a
cluster for speci�c containers, assigns the right
resources, and uses Docker Hub for host discovery.
Swarm provides operational �exibility with a
“batteries included but swappable” approach
supported by partners in the Docker ecosystem.
Partners leverage the Swarm API to create
value-added capabilities while maintaining a uniform
Docker experience for developers. These integrations
ensure distributed application portability across any
infrastructure, while providing operations teams the
�exibility to leverage existing tools or select the
Docker-based partner infrastructure that they believe
is best optimized for their speci�c application.
Machine: At a Glance
• Auto-provision hosts
• Auto-install Docker Engine
• Ready in Minutes
• Infrastructure PartnerIntegrations
$ machine create
Docker Swarm is an orchestration tool that provides
native clustering of Docker Engines, scheduling
capabilities of application containers and integrations
with ecosystem partners. Swarm provides a uniform
developer experience at any scale, as developers build
and ship applications, while providing the operational
freedom to choose infrastructure and tooling
optimized for the application.
The native clustering and scheduling capabilities of
Swarm can scale with the application development
lifecycle from one laptop to spanning hundreds of
hosts in production. Any number of Docker Engines
into a Swarm, organizations are able to pool the
resources across those Engines into a single virtual
Engine to run application containers. The scheduling
capabilities of Swarm determine the right host in a
cluster for speci�c containers, assigns the right
resources, and uses Docker Hub for host discovery.
Swarm provides operational �exibility with a
“batteries included but swappable” approach
supported by partners in the Docker ecosystem.
Partners leverage the Swarm API to create
value-added capabilities while maintaining a uniform
Docker experience for developers. These integrations
ensure distributed application portability across any
infrastructure, while providing operations teams the
�exibility to leverage existing tools or select the
Docker-based partner infrastructure that they believe
is best optimized for their speci�c application.
Docker Compose
Docker Compose is an orchestration tool that
simpli�es building and shipping multi-container
distributed applications. Developers build a simple
declarative YAML �le that de�nes which containers
comprise the application and the links that they have
to each other. Compose creates and maintains a
logical de�nition of a distributed application that can
move from a developer’s laptop to QA environment
to staging and all the way into production.
Compose: At a Glance
• Simplify Multi-Container apps
• Easy to build and update
containers: web: build: command: python app.py ports: - “5000:5000” volumes: - .:/code links: - redis environments: - PYTHONUNBUFFERED-1redis: image: redis:latest command: redis-server --appendonly yes
Swarm: At a Glance
• Native clustering andscheduling
• Better resource utilization
• Better HA and failover
• Partner Integrations
$ docker run