Intro to Docker
The contents of the the slides have been stol..., umm,
liberally borrowed from Docker Slideshare materials.
Thanks to everyone at Docker, Inc!
1By Yogesh Wadile (Software engineer, 9+year experience Yogesh.it2010@gmail.com)
The Challenge
2
The Matrix from Hell
3
Cargo Transport Pre-1960
4
5
Solution: Intermodal Shipping
Container
6
Dockeris a Container System
for Code
7
Why Developers Care
• Build once... (finally) run anywhere*
• A clean, safe, hygienic, portable runtime environment for
your app.
• No worries about missing dependencies, packages and
other pain points during subsequent deployments.
• Run each app in its own isolated container, so you can run
various versions of libraries and other dependencies for each
app without worrying.
• Automate testing, integration, packaging...anything you
can script.
• Reduce/eliminate concerns about compatibility on di"erent
platforms, either your own or your customers. Cheap, zero-
penalty containers to deploy services. A VM without the
overhead of a VM. Instant replay and reset of image
snapshots.
• * Where "anywhere" means an x86 server running a modern Linux
kernel (3.2+ generally or 2.6.32+ for RHEL 6.5+, Fedora, & related)
8
WhyAdministratorsCare
Configure once... run anything
Make the entire lifecycle more e cient, consistent, and
repeatable
Increase the quality of code produced by developers.
Eliminate inconsistencies between development, test,
production, and customer environments.
Support segregation of duties.
Significantly improves the speed and reliability of
continuous deployment and continuous integration
systems.
Because the containers are so lightweight, address
significant performance, costs, deployment, and
portability issues normally associated with VMs.
9
MoreTechnicalDetails
Why
Run everywhere
Regardless of kernel version
Regardless of host distro
Physical or virtual, cloud or not
Container and host architecture must
match...
Run anything
If it can run on the host, it can run in the
container
If it can on a Linux kernel, it can run
What
High level: a lightweight V
Own process space
Own network interface
Can run stu" as root
Can have its own /sbin/init (di"erent
host)
<<machine container>>
Low level: chroot on steroi
Can also not have its own /sbin/init
Container = isolated processes
Share kernel with host
<<application container>>
10
VMsvsContainers
11
Instead of hosting each operating system per
each application, some common resources
can be shared, and there is something called
“docker engine,” which sits on top of an
Operating System as shown below.
A hypervisor or virtual machine monitor is
computer software, firmware or hardware that
creates and runs virtual machines. A computer on
which a hypervisor runs one or more virtual
machines is called a host machine, and each virtual
machine is called a guest machine.
More Detail :
https://www.vmware.com/topics/glossary/content/
hypervisor
WhyareDockerContainers
Lightweight?
12
Docker Architecture
13
What are the Basics Of Docker System?
14
Docker engine:
•Docker engine or Docker is a client server
application that builds and executes containers
using Docker components
•REST API is a primary mode of communication
between Docker Client and Docker Daemon
•Docker toolbox is used for older Windows and
Mac systems with the following features:
Docker daemon:
•Docker Daemon is a server which interacts with
the operating system and performs all kind of
services
•The Docker Daemon listens for REST API request
and performs the operation
•A command dockerd is used to start a Docker
Daemon
•Docker Host runs the Docker Daemon and
Registry
Ecosystem Support
Operating systems
Virtually any distribution with a 2.6.32+ kernel
Red Hat/Docker collaboration to make work across RHEL 6.4+, Fedora, and
other members of the family (2.6.32 +)
CoreOS—Small core OS purpose built with Docker
OpenStack
Docker integration into NOVA (& compatibility with Glance, Horizon, etc.)
accepted for Havana release
Private PaaS
OpenShift, Solum (Rackspace, OpenStack), Other TBA
Public PaaS
Deis, Voxoz, Cocaine (Yandex), Baidu PaaS
Public IaaS
Native support in Rackspace, Digital Ocean,+++
AMI (or equivalent) available for AWS & other
DevOps Tools
Integrations with Chef, Puppet, Jenkins, Travis, Salt, Ansible +++
Orchestration tools
Mesos, Heat, ++
Shipyard & others purpose built for Docker
Applications
1000’s of Dockerized applications available at index.docker.io
16
Want to Learn More?
• www.docker.io Documentation
• Getting started (tutorial, installation, guide, etc)
• Introductory whitepaper
Docker play : https://labs.play-with-docker.com
Docker Cheat-sheet :
https://github.com/wsargent/docker-cheat-
sheet#dockerfile
17

Docker Understanding, What is Docker? Why Docker? How do I containerize something?

  • 1.
    Intro to Docker Thecontents of the the slides have been stol..., umm, liberally borrowed from Docker Slideshare materials. Thanks to everyone at Docker, Inc! 1By Yogesh Wadile (Software engineer, 9+year experience Yogesh.it2010@gmail.com)
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
    Dockeris a ContainerSystem for Code 7
  • 8.
    Why Developers Care •Build once... (finally) run anywhere* • A clean, safe, hygienic, portable runtime environment for your app. • No worries about missing dependencies, packages and other pain points during subsequent deployments. • Run each app in its own isolated container, so you can run various versions of libraries and other dependencies for each app without worrying. • Automate testing, integration, packaging...anything you can script. • Reduce/eliminate concerns about compatibility on di"erent platforms, either your own or your customers. Cheap, zero- penalty containers to deploy services. A VM without the overhead of a VM. Instant replay and reset of image snapshots. • * Where "anywhere" means an x86 server running a modern Linux kernel (3.2+ generally or 2.6.32+ for RHEL 6.5+, Fedora, & related) 8
  • 9.
    WhyAdministratorsCare Configure once... runanything Make the entire lifecycle more e cient, consistent, and repeatable Increase the quality of code produced by developers. Eliminate inconsistencies between development, test, production, and customer environments. Support segregation of duties. Significantly improves the speed and reliability of continuous deployment and continuous integration systems. Because the containers are so lightweight, address significant performance, costs, deployment, and portability issues normally associated with VMs. 9
  • 10.
    MoreTechnicalDetails Why Run everywhere Regardless ofkernel version Regardless of host distro Physical or virtual, cloud or not Container and host architecture must match... Run anything If it can run on the host, it can run in the container If it can on a Linux kernel, it can run What High level: a lightweight V Own process space Own network interface Can run stu" as root Can have its own /sbin/init (di"erent host) <<machine container>> Low level: chroot on steroi Can also not have its own /sbin/init Container = isolated processes Share kernel with host <<application container>> 10
  • 11.
    VMsvsContainers 11 Instead of hostingeach operating system per each application, some common resources can be shared, and there is something called “docker engine,” which sits on top of an Operating System as shown below. A hypervisor or virtual machine monitor is computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine. More Detail : https://www.vmware.com/topics/glossary/content/ hypervisor
  • 12.
  • 13.
  • 14.
    What are theBasics Of Docker System? 14
  • 15.
    Docker engine: •Docker engineor Docker is a client server application that builds and executes containers using Docker components •REST API is a primary mode of communication between Docker Client and Docker Daemon •Docker toolbox is used for older Windows and Mac systems with the following features: Docker daemon: •Docker Daemon is a server which interacts with the operating system and performs all kind of services •The Docker Daemon listens for REST API request and performs the operation •A command dockerd is used to start a Docker Daemon •Docker Host runs the Docker Daemon and Registry
  • 16.
    Ecosystem Support Operating systems Virtuallyany distribution with a 2.6.32+ kernel Red Hat/Docker collaboration to make work across RHEL 6.4+, Fedora, and other members of the family (2.6.32 +) CoreOS—Small core OS purpose built with Docker OpenStack Docker integration into NOVA (& compatibility with Glance, Horizon, etc.) accepted for Havana release Private PaaS OpenShift, Solum (Rackspace, OpenStack), Other TBA Public PaaS Deis, Voxoz, Cocaine (Yandex), Baidu PaaS Public IaaS Native support in Rackspace, Digital Ocean,+++ AMI (or equivalent) available for AWS & other DevOps Tools Integrations with Chef, Puppet, Jenkins, Travis, Salt, Ansible +++ Orchestration tools Mesos, Heat, ++ Shipyard & others purpose built for Docker Applications 1000’s of Dockerized applications available at index.docker.io 16
  • 17.
    Want to LearnMore? • www.docker.io Documentation • Getting started (tutorial, installation, guide, etc) • Introductory whitepaper Docker play : https://labs.play-with-docker.com Docker Cheat-sheet : https://github.com/wsargent/docker-cheat- sheet#dockerfile 17