Overview of
Containers and
Docker
Sudip Ghosh
What is a container ?
● Runtime Definition:
“A sandbox for a process” or
“An isolated process.”
● The container process and
the container lifecycle are
tightly coupled.
● Share OS Kernel
● bins/libraries
OS
P P P P
cgroups
Ps namespace
Creating a container :Cgroups and
namespace
Creating a container :Copy-on-write
Difference between VM and Container
Physical
OS
APP
Physical
OS
APP
VM Container
Hypervisor
(vsphere,NSX etc.)
Virtual Machine
NIC
Kernel
Agents
Storage
NIC
Storage
size DE
OS Dependencies
OS Dependencies
IMAGE
● A binary representation +
some metadata or state.
Ex:.vmdk is a disk image
● Images are made of layers,
conceptually stacked on top
of each other
Advantages:
● Consolidation of binary files
● Focus on specific place and
detect vulnerability
Scratch
Debian
perl
APP ..
..
..
Dockerfile
An environment in a
text file.
From:<base image>
………………
…………….
…………
…………
………
…………
……………….
…………………..
Dockerfile
Relationship between
Container,IMAGES,dockerfile
Conatiners
(like
instances)
IMAGES
(like classes or
blueprints)
What is Docker ?
● Docker is a computer program that performs
operating-system-level virtualization, also
known as "containerization". It was first
released in 2013 and is developed by Docker,
Inc. Docker is used to run software packages
called "containers"
● Repo: https://github.com/docker
● Idea of Mr. Solomon Hykes and team of dotcloud
and open source community
How Docker works and why it is so fast in terms of running a
container from an image
Docker Host
……
……
…….
Pull / Push
(Diff only)
Registry
cache
Image tree
Client
Daemon
API
Pull
Create
Commit
Run
etc.
-Container lifecycle
management
-network
-storage
N
V
Container Lifecycle
Management
Containers have been around for avery long time.(c.f. LXC,
Solaris Zones etc)
What does Docker bring to the table then ?
Commoditization of Containers
Shipping Containers Efficiently
Container image as build artifact
Technical and Cultural
revolution(DevOps)
Time to up some
Containers
Sudip Ghosh

Containers and docker

  • 1.
  • 2.
    What is acontainer ? ● Runtime Definition: “A sandbox for a process” or “An isolated process.” ● The container process and the container lifecycle are tightly coupled. ● Share OS Kernel ● bins/libraries OS P P P P cgroups Ps namespace
  • 3.
    Creating a container:Cgroups and namespace
  • 4.
    Creating a container:Copy-on-write
  • 5.
    Difference between VMand Container Physical OS APP Physical OS APP VM Container Hypervisor (vsphere,NSX etc.) Virtual Machine NIC Kernel Agents Storage NIC Storage size DE OS Dependencies OS Dependencies
  • 6.
    IMAGE ● A binaryrepresentation + some metadata or state. Ex:.vmdk is a disk image ● Images are made of layers, conceptually stacked on top of each other Advantages: ● Consolidation of binary files ● Focus on specific place and detect vulnerability Scratch Debian perl APP .. .. ..
  • 7.
    Dockerfile An environment ina text file. From:<base image> ……………… ……………. ………… ………… ……… ………… ………………. ………………….. Dockerfile
  • 8.
  • 9.
    What is Docker? ● Docker is a computer program that performs operating-system-level virtualization, also known as "containerization". It was first released in 2013 and is developed by Docker, Inc. Docker is used to run software packages called "containers" ● Repo: https://github.com/docker ● Idea of Mr. Solomon Hykes and team of dotcloud and open source community
  • 10.
    How Docker worksand why it is so fast in terms of running a container from an image Docker Host …… …… ……. Pull / Push (Diff only) Registry cache Image tree Client Daemon API Pull Create Commit Run etc. -Container lifecycle management -network -storage N V Container Lifecycle Management
  • 11.
    Containers have beenaround for avery long time.(c.f. LXC, Solaris Zones etc) What does Docker bring to the table then ?
  • 12.
  • 13.
  • 14.
    Container image asbuild artifact
  • 15.
  • 16.
    Time to upsome Containers Sudip Ghosh