Jun 27th
Virtualization
, Containers
Docker
Architecture
Internals
Docker
Working
Docker
Orchestration
Docker
outside
Virtualization refers to the act of creating a virtual (rather than actual)
version of something, including (but not limited to) a virtual computer
hardware platform, operating system (OS), storage device, or computer
network resources
- Containers aren’t a new concept
 Use Linux kernel isolation features to give a
VM like environment.
 Docker, Lxc, Rkt, lmctfy
“Automates the deployment of any
application as a lightweight, portable,
self-sufficient container
that will run virtually anywhere”
 Faster delivery of your applications
 Deploying and scaling more easily
 Achieving higher density and running more workloads
 Portable deployment across machines
 Versioning
 Component reuse
 Shared libraries
Static website Web frontendUser DB Queue Analytics DB
Development
VM
QA server Public Cloud Contributor’s
laptop
MultiplicityofStacks
Multiplicityof
hardware
environments
Production
Cluster
Customer Data
Center
Doservicesand
appsinteract
appropriately?
CanImigrate
smoothlyand
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…
Slide Reference: DockerCon
Quick Demo….
Source Code
Repository
Dockerfil
e
For
A
Docker Engine
Docker
Container
Image
Registry
Build
Docker
Host 2 OS (Linux)
ContainerA
ContainerB
ContainerC
ContainerA
Push
Search Pull
Run
Host 1 OS (Linux)
namespaces
pid
mnt
net
uts
ipc
user
cgroups
memory
cpu
blkio
devices
Docker is written in the lightweight Go language,
and it uses helper scripts to create containers as
lightweight machines
Pull the image from Docker Repository
docker pull sequenceiq/spark:1.4.0
Building the image
docker build --rm -t sequenceiq/spark:1.4.0 .
Running the image
docker run -it -p 8088:8088 -p 8042:8042 -h sandbox sequenceiq/spark:1.4.0 bash
FROM java:7
MAINTAINER nvn_ravi@hotmail.com
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN javac Main.java
CMD ["java", "Main"]
• FROM
• The name:tag of the parent image that this image will be based on
• MAINTAINER
• Optional line for documenting who does the care and feeding for this image.
Typically an email address or name.
• RUN <command>
• A command to run in the container to adjust something on this image.This
runs at the time of the docker build command.
• EXPOSE
• WhatTCP ports should be exposed on the host when docker run -P is used
• ADD <src>... <dest>
• Add files from the src directory in the context of the build to the container
filesystem at dest
• CMD command param1 param2
• Unless otherwise specified by the docker run command, run this command
when the container is started with this image
 Docker Announces General Availability of Comprehensive
Commercial Solutions
 DockerTrusted Registry (DTR)
 Docker’s ‘Container-as-a-Service’ Solution Delivers Agility
to Devs and Control to Ops
 Large Financial Services Firm Uses Docker to Accelerate
“Big Data” Analyses
 Docker Delivers Native Multi-Host Networking to Advance
Distributed Application Portability
 Multi-host (SDN)That Delivers Application Portability
 Docker Plugin Architecture Exponentially Grows Options
for Users and Opportunity forTechnology Partners
 ClusterHQ, Glider Labs andWeaveworks
 OrchestrationTool Enhancements
• Nova-docker
–Virt driver for Nova
– Basic start and stop (basicVM lifecycle)
• Heat Resource
– Create containers on Nova instances
– Represent them in HOT files
– No resource scheduler
– Native management interface only
• Magnum
– OpenStack Service for Containers as a first
class resource
• Integrates with Keystone
• Integrates with Heat
• Multi-Tenant
• AsynchronousAPI
• Concepts for Node, Bay, Pod, Container, Service,
Replication Controller

Quick Trip with Docker

  • 1.
  • 2.
  • 4.
    Virtualization refers tothe act of creating a virtual (rather than actual) version of something, including (but not limited to) a virtual computer hardware platform, operating system (OS), storage device, or computer network resources
  • 5.
    - Containers aren’ta new concept
  • 6.
     Use Linuxkernel isolation features to give a VM like environment.  Docker, Lxc, Rkt, lmctfy
  • 9.
    “Automates the deploymentof any application as a lightweight, portable, self-sufficient container that will run virtually anywhere”
  • 10.
     Faster deliveryof your applications  Deploying and scaling more easily  Achieving higher density and running more workloads  Portable deployment across machines  Versioning  Component reuse  Shared libraries
  • 12.
    Static website WebfrontendUser DB Queue Analytics DB Development VM QA server Public Cloud Contributor’s laptop MultiplicityofStacks Multiplicityof hardware environments Production Cluster Customer Data Center Doservicesand appsinteract appropriately? CanImigrate smoothlyand 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… Slide Reference: DockerCon
  • 16.
  • 17.
    Source Code Repository Dockerfil e For A Docker Engine Docker Container Image Registry Build Docker Host2 OS (Linux) ContainerA ContainerB ContainerC ContainerA Push Search Pull Run Host 1 OS (Linux)
  • 21.
    namespaces pid mnt net uts ipc user cgroups memory cpu blkio devices Docker is writtenin the lightweight Go language, and it uses helper scripts to create containers as lightweight machines
  • 25.
    Pull the imagefrom Docker Repository docker pull sequenceiq/spark:1.4.0 Building the image docker build --rm -t sequenceiq/spark:1.4.0 . Running the image docker run -it -p 8088:8088 -p 8042:8042 -h sandbox sequenceiq/spark:1.4.0 bash
  • 26.
    FROM java:7 MAINTAINER nvn_ravi@hotmail.com COPY. /usr/src/myapp WORKDIR /usr/src/myapp RUN javac Main.java CMD ["java", "Main"]
  • 27.
    • FROM • Thename:tag of the parent image that this image will be based on • MAINTAINER • Optional line for documenting who does the care and feeding for this image. Typically an email address or name. • RUN <command> • A command to run in the container to adjust something on this image.This runs at the time of the docker build command. • EXPOSE • WhatTCP ports should be exposed on the host when docker run -P is used • ADD <src>... <dest> • Add files from the src directory in the context of the build to the container filesystem at dest • CMD command param1 param2 • Unless otherwise specified by the docker run command, run this command when the container is started with this image
  • 47.
     Docker AnnouncesGeneral Availability of Comprehensive Commercial Solutions  DockerTrusted Registry (DTR)  Docker’s ‘Container-as-a-Service’ Solution Delivers Agility to Devs and Control to Ops  Large Financial Services Firm Uses Docker to Accelerate “Big Data” Analyses  Docker Delivers Native Multi-Host Networking to Advance Distributed Application Portability  Multi-host (SDN)That Delivers Application Portability  Docker Plugin Architecture Exponentially Grows Options for Users and Opportunity forTechnology Partners  ClusterHQ, Glider Labs andWeaveworks  OrchestrationTool Enhancements
  • 50.
    • Nova-docker –Virt driverfor Nova – Basic start and stop (basicVM lifecycle) • Heat Resource – Create containers on Nova instances – Represent them in HOT files – No resource scheduler – Native management interface only • Magnum – OpenStack Service for Containers as a first class resource • Integrates with Keystone • Integrates with Heat • Multi-Tenant • AsynchronousAPI • Concepts for Node, Bay, Pod, Container, Service, Replication Controller

Editor's Notes

  • #6 Different types of hardware virtualization include: Full virtualization – almost complete simulation of the actual hardware to allow software, which typically consists of a guest operating system, to run unmodified. Partial virtualization – some but not all of the target environment attributes are simulated. As a result, some guest programs may need modifications to run in such virtual environments. Paravirtualization – a hardware environment is not simulated; however, the guest programs are executed in their own isolated domains, as if they are running on a separate system. Guest programs need to be specifically modified to run in this environment.
  • #15 Docker has the highest buying intenJon score of any enterprise company or open-source project in six years of tracking by research firm Enterprise Technology Research
  • #17 Docker: the open source container virtualization platform. Docker Hub: our Software-as-a-Service platform for sharing and managing Docker containers.
  • #27 Dockerfiles document how to construct the container and what to execute when it is running.
  • #34 Machine lets you create Docker hosts on your computer, on cloud providers, and inside your own data center. It creates servers, installs Docker on them, then configures the Docker client to talk to them. Machine makes it really easy to create Docker hosts on your computer, on cloud providers and inside your own data center. It creates servers, installs Docker on them, then configures the Docker client to talk to them.
  • #35 Docker Swarm is native clustering for Docker. It turns a pool of Docker hosts into a single, virtual host. Has support for etcd, consul, and zookeeper host discovery systems.
  • #37 It allows you to define your multi-container application with all of its dependencies in a single file, then spin your application up in a single command
  • #38 ScoketPlane.io
  • #47 http://blogs.cisco.com/tag/docker https://registry.hub.docker.com/u/dockercisco/aci/