SlideShare a Scribd company logo
1 of 49
Download to read offline
2
Who	
  am	
  I?	
  
Somenath	
  Ghosh	
  
§  Techo	
  Delivery	
  Manager	
  of	
  Pla3orm	
  and	
  Architecture	
  	
  
at	
  Bank	
  of	
  America.	
  
§  10+	
  years	
  industry	
  experience	
  in	
  BFS	
  
§  I 	
  love 	
  APIs 	
  and 	
  Services 	
  and	
   of 	
  course, 	
  the	
  
ContainerizaHon/Docker!	
  
§ Agile	
  and	
  DevOps	
  EnthuciasHc	
  	
  
Contact:	
  
Email: 	
  somenath.ghosh@tcs.com	
  
Website:	
  hQp://somenathghosh.space	
  |	
  hQps://somenathghosh.space	
  
	
  
Agenda	
  
1	
   2	
   3	
   4	
   5	
  
What	
  is	
  Docker	
   Why	
  we	
  need	
  Docker	
   Docker	
  Architecture	
  Working	
  with	
  Docker	
   Eco-­‐system	
  
The Shipping Matrix from Hell
The	
  hell	
  of	
  the	
  shipping	
  things	
  
Shipping	
  Containers	
  -­‐	
  Shipping	
  Matrix	
  From	
  Hell	
  
4
The	
  hell	
  of	
  the	
  shipping	
  things	
  
Shipping	
  Containers	
  -­‐	
  Standard	
  Shipping	
  Container	
  
5
The	
  hell	
  of	
  the	
  shipping	
  things	
  
Docker	
  Containers	
  -­‐	
  Standard	
  Shipping	
  Container	
  
6
The	
  hell	
  of	
  the	
  shipping	
  things	
  
SOLVED!	
  –	
  The	
  soluMon	
  is	
  Container	
  
7
Who	
  is	
  Docker?	
  
8
What	
  is	
  Container/Docker	
  Container?	
  
Docker	
  is	
  an	
  open-­‐source	
  project	
  that	
  automates	
  the	
  deployment	
  of	
  applicaHons	
  inside	
  soVware	
  containers,	
  by	
  	
  
providing	
  an	
  addiHonal	
  layer	
  of	
  abstracHon	
  and	
  automaHon	
  of	
  operaHng	
  system–level	
  	
  virtualizaHon.	
  
[Source:	
  en.wikipedia.org]	
  
Dockervs.	
  Virtual	
  Machine	
  
Virtual Machine
Docker
win,	
  *nix,	
  etc.	
  
No	
  Guest	
  OS	
  
10
Docker	
  Technology	
  
•  libvirt:	
  Pla3orm	
  VirtualizaHon	
  
•  LXC	
  (LinuX	
  Containers):	
  MulHple	
  isolated	
  Linux	
  	
  
systems	
  (containers)	
  on	
  a	
  single	
  host	
  
•  Layered	
  File	
  System	
  
10
Run	
  PlaUorms	
  
Various	
  Linux	
  distribuHons	
  (Ubuntu,	
  Fedora,	
  	
  
RHEL,	
  Centos,	
  openSUSE)	
  
Cloud	
  (Amazon	
  EC2,	
  Google	
  Compute	
  Engine,	
  
Rackspace,	
  Heroku)	
  
Windows:	
  
2014-­‐Oct:	
  Microso'	
  announces	
  plans	
  to	
  	
  
integrate	
  Docker	
  with	
  next	
  release	
  of	
  Windows	
  	
  
Server	
  
2016:	
  Windows	
  Server	
  2016	
  naHvely	
  supports	
  
Docker	
  
Docker	
  on	
  Linux	
  and	
  Win	
  server	
  2016	
  
11
Why	
  Docker?	
  
12
Since	
  My	
  World	
  Needed	
  To	
  Change	
  
COST	
  EffecHve	
   WASTE	
  Management	
   Fluidity	
   DevOps	
  &	
  Agility	
  
The	
  IT	
  Cost	
  bill	
  is	
  too	
  damn	
   	
  high!
Decline	
   in	
   the	
   global	
   price	
   of	
   	
   oil	
  
causing	
  churn	
  in	
  our	
  business!	
  
We	
  weren’t	
  using	
  the	
  compute	
  and	
  	
  
memory	
  resources	
  purchased	
  from	
  	
  
hardware	
  provider/IaaS!	
  
•  Nearly	
  all	
  “micro-­‐services”	
  were	
  	
  
at	
  1%	
  CPU	
  uHlizaHon	
  
•  Nearly	
   all	
   “micro-­‐services’	
   were	
  	
  
only	
   using	
   40%	
   of	
   memory	
  	
  
(JVM)	
  
•  150+	
   	
   	
   	
   	
   	
   	
   	
   	
   	
   virtual	
  machines	
  	
  
essenHally	
  sipng	
  idle	
  
How	
  would	
  we	
  leave	
  	
  AMZN	
  	
  if	
  	
  we	
  
wanted	
  to?	
  
•  Could 	
  we 	
  use 	
  own 	
  IT’s	
  	
  
Openstack	
  pla3orm?	
  
•  What 	
  about 	
  alternate 	
  IaaS	
  
providers 	
  like 	
  Rackspace 	
  or	
  	
  
Azure	
  or	
  Google	
  Cloud?	
  
•  What	
   about	
   Container	
   as	
   a	
  	
  
Service	
   (CaaS)	
   providers	
   like	
  	
  
Joyent,	
  Tutum	
  or	
  Docker	
  Cloud?	
  
•  What	
  	
  	
  about 	
  using	
  	
  	
  Amazon’s	
  
Container	
  Service?	
  
•  Developer	
  does	
  not	
  have	
  to	
  care	
  
about	
  Infra	
  any	
  more	
  
•  Developer	
  can	
  focus	
  on	
  what	
  	
  
they	
  like	
  to	
  do.	
  
•  The	
  thing	
  works	
  on	
  	
  Developer’s	
  
PROD	
  
agility	
  
lesser	
  
machine	
  can	
  work	
  on	
  	
  
machine	
  too.	
  
•  Sustainable	
  to	
  market	
  	
  
and	
  customer	
  demand	
  
•  Faster 	
  delivery 	
  with	
  	
  
operaHon	
  overhead.	
  
Why	
  you	
  should	
  bother	
  about	
  it?	
  
13
Let	
  us	
  do	
  some	
  work	
  -­‐	
  Hello	
  World!	
  
Simple	
  but	
  powerful	
  Command	
  
> docker run ubuntu echo Hello World
> docker images [-a]
> docker ps –a
Then,	
  run	
  echo	
  Hello	
  	
  
World	
  Command	
  Run	
  container	
  Ubuntu	
  	
  
from	
  Image	
  Ubuntu	
  
List	
  all	
  images	
  
List	
  all	
  running	
  container	
  
images:	
  	
  
run:	
  	
  
tag:	
  	
  
pull:	
  	
  
rmi:	
  
14
List	
  all	
  local	
  images	
  
Create	
  a	
  container	
  from	
  an	
  image	
  and	
  execute	
  a	
  command	
  in	
  it	
  	
  
Tag	
  an	
  image	
  
Download	
  image	
  from	
  repository	
  	
  
Delete	
  a	
  local	
  image	
  
This	
  will	
  also	
  remove	
  intermediate	
  images	
  if	
  no	
  longer	
  used	
  
More	
  commands	
  
15
o  ps:	
  
o  ps	
  –a:	
  
o  top:	
  
o  start:	
  
o  stop:	
  
o  pause:	
  
o  rm:	
  
List	
  all	
  running	
  containers	
  
List	
  all	
  containers	
  (incl.	
  stopped)	
  	
  
Display	
  processes	
  of	
  a	
  container	
  	
  
Start	
  a	
  stopped	
  container	
  
Stop	
  a	
  running	
  container	
  
Pause	
  all	
  processes	
  within	
  a	
  container	
  
Delete	
  a	
  container	
  
o commit:	
  Create	
  an	
  image	
  from	
  a	
  container	
  
Dockerfile	
  
16
•  Create	
  images	
  automaHcally	
  using	
  a	
  
build	
  script:	
  
«Dockerfile»	
  
•  Can	
  be	
  versioned	
  in	
  a	
  version	
  control	
  
system	
  like	
  Git	
  	
  or	
  SVN,	
  along	
  with	
  all	
  
dependencies	
  
•  Docker	
  Hub	
  can	
  automaHcally	
  build	
  
images	
  based	
  on	
  	
  dockerfiles	
  on	
  Github	
  
#
# Super simple example of a Dockerfile
#
FROM ubuntu:latest
MAINTAINER Somenath Ghosh ”somenath.ghosh@tcs.com"
RUN apt-get update
RUN apt-get install -y python python-pip wget
RUN pip install Flask
ADD hello.py /home/hello.py
WORKDIR /home
Dockerfile	
  Example	
  
17
•  Dockerfile:	
  
•  FROM ubuntu ß Build	
  from	
  Base	
  Image	
  
Hello My World
dir /files
ENV DOCK_MESSAGE
ADD
CMD ["bash", "someScript"]
•  docker build [DockerFileDir] ß Build	
  image	
  from	
  Dockerfile
•  docker inspect [imageId] ß Inspect	
  the	
  image	
  
MounMng	
  Volumes	
  to	
  a	
  Container	
  
18
•  docker run –ti –v /hostLog:/log ubuntu
Run	
  second	
  container:	
  Volume	
  can	
  be	
  shared	
  
•  docker run –ti --volumes-from
firstContainerName ubuntu
Publishing	
  Port	
  
20
docker run –t –p 8080:80 ubuntu nc –l 80
Map	
  container	
  port	
  80	
  to	
  host	
  port	
  8080.	
  Check	
  on	
  host:	
  nc	
  localhost	
  	
  
8080	
  
Link	
  with	
  other	
  docker	
  container	
  
docker run -ti --link containerName:alias ubuntu
Image	
  vs.	
  Container	
  
Base	
  Image	
  
ubuntu:latest	
  
Container	
  	
  
cid1	
  
run	
  
Container	
  	
  
cid1	
  
cmd	
  à new	
  state	
  
New	
  Image	
  	
  
iid1	
  
commit	
  
base	
  image	
  
Container	
  	
  
Ccoindt2ainer	
  
Ccoindt3ainer	
  	
  
cid4	
  
run	
  
Class
Object-­‐1	
   Object-­‐2	
   Object-­‐3	
   Object-­‐n	
  
Class	
  and	
  Object	
  Analogy	
  
Image	
  =	
  Class	
  	
  
Container	
  =	
  Object	
  
Image	
  evoluHon	
  
20
Docker	
  Architecture	
  
21
Build,	
  Ship	
  and	
  Run	
  
22
Containers	
  Alone	
  Aren’t	
  Enough	
  
Running	
  containerized	
  “micro-­‐services”	
  in	
  producHon	
  requires	
  much	
  more	
  than	
  just	
  
Docker.	
  
Ø  It	
  requires	
  a	
  “Pla6orm”	
  that	
  can	
  do	
  the	
  following:	
  
§  Building	
  and	
  pushing	
  Docker	
  images	
  to	
  an	
  image	
  repository	
  
§  Pulling	
  images,	
  provisioning	
  and	
  scheduling	
  containers	
  
§  Discovering	
  and	
  binding	
  to	
  services	
  running	
  as	
  containers	
  
§  Containers	
  discovering	
  and	
  binding	
  to	
  other	
  containers	
  
§  OperaHng	
  and	
  managing	
  services	
  in	
  containers	
  
24
25
But	
  Containers	
  Aren’t	
  Enough!	
  
Problem:	
  Detect	
  	
  
changes	
  at	
  Github	
  	
  
and	
  build	
  a	
  new	
  	
  
Docker	
  image	
  
Problem:	
  Where	
  	
  
do	
  we	
  store	
  our	
  	
  
Docker	
  images?	
  
Docker	
  PlaUorm:	
  Problem-­‐1	
  Build	
  &	
  Store	
  Images	
  
25	
  
26
Problem:	
  Where	
  	
  
do	
  we	
  store	
  our	
  	
  
Docker	
  images?	
  
Docker	
  PlaUorm:	
  Problem-­‐1	
  Build	
  &	
  Store	
  Images	
  
26	
  
27
Problem:	
  How	
  do	
  we	
  build	
  images?	
  
Jenkins	
  automates	
  the	
  image	
  builds.	
  
§  Started	
  building	
  our	
  images	
  with	
  Ubuntu	
  14.04	
  (1GB)	
  
§  SeQled	
  on	
  Alpine,	
  a	
  minimal	
  linux	
  distribuHon	
  (5MB)	
  
§  Typical	
  “micro-­‐services”	
  now	
  <	
  500MB	
  
Problem:	
  Where	
  do	
  we	
  put	
  them?	
  	
  
Dockerhub.	
  
§  Docker	
  Trusted	
  Registry	
  and	
  Core	
  OS	
  Enterprise	
  Registry	
  
§  SeQled	
  on	
  using	
  Dockerhub	
  
§  Use	
  latest	
  and	
  sem-­‐ver	
  tags	
  on	
  our	
  images	
  
27
28
Docker	
  PlaUorm:	
  Build	
  &	
  Store	
  Images	
  -­‐	
  SoluMon	
  
Problem:	
  Which	
  	
  
host	
  do	
  the	
  	
  
containers	
  run	
  	
  
on?	
  
Dockerhub	
  
Problem:	
  How	
  	
  
are	
  containers	
  	
  
started	
  and	
  	
  
configured?	
  
Docker	
  PlaUorm:	
  Problem-­‐2	
  Provisioning	
  &	
  Scheduling	
  
28	
  
29
Dockerhub	
  
Problem:	
  How	
  	
  
are	
  containers	
  	
  
started	
  and	
  	
  
configured?	
  
Docker	
  PlaUorm:	
  Problem-­‐2	
  Provisioning	
  &	
  Scheduling	
  
30	
  
30
Problem:	
  How	
  do	
  we	
  determine	
  which	
  host	
  to	
  run	
  a	
  container	
  on	
  and	
  how	
  do	
  we	
  configure	
  and	
  start	
  the	
  	
  
container?	
  
We	
  can	
  solve	
  scheduling	
  and	
  provisioning	
  with	
  Chef.	
  
§  Chef	
  schedules	
  containers	
  on	
  specific	
  hosts	
  using	
  Chef	
  roles	
  
§  Chef	
  provisions	
  and	
  configures	
  containers	
  using	
  Chef	
  recipes	
  and	
   environments	
  
§  Each	
  “micro-­‐service”	
  has	
  an	
  associated	
  Chef	
  recipe	
  that	
  converts	
  Chef	
  aQributes	
  into	
  container	
  	
  
environment	
  variables	
  
30
31
Docker	
  PlaUorm:	
  Provisioning	
  &	
  Scheduling	
  -­‐	
  SoluMon	
  
Problem:	
  How	
  	
  
can	
  web	
  	
  
applicaHons	
  	
  
discover	
  and	
  	
  
bind	
  to	
  	
  
containers?	
  Web	
  ApplicaHons	
  
Docker	
  Containers	
  
Docker	
  PlaUorm:	
  Problem-­‐3	
  Service	
  Directory/Registry	
  
31	
  
32
Web	
  ApplicaHons	
  
Docker	
  Containers	
  
Docker	
  PlaUorm:	
  Problem-­‐3	
  Service	
  Directory/Registry	
  
32	
  
33
Problem:	
  How	
  do	
  our	
  browser	
  applicaHons	
  locate	
  service	
  containers?	
  
We	
  can	
  use	
  Hashicorp’s	
  Consul	
  as	
  our	
  service	
  directory.	
  
Containers	
  automaDcally	
  register	
  themselves	
  with	
  Consul	
  when	
  started.	
  
§  The	
  Docker	
  daemon	
  emits	
  real-­‐Dme	
  lifecycle	
  events	
  for	
  container	
  	
  start	
  
§  A	
  uHlity	
  container	
  called	
  Registrator	
  to	
  automate	
  the	
  registraHon	
  of	
  “micro-­‐service”	
  containers	
  with	
  	
  
Consul	
  
§  Containers	
  are	
  registered	
  with	
  a	
  health	
  check	
  that	
  Consul	
  polls	
  to	
  determine	
  the	
  health	
  of	
  the	
  	
  container	
  
33
34
Docker	
  PlaUorm:	
  Service	
  Directory/Registry	
  -­‐	
  SoluMon	
  
Problem:	
  How	
  can	
  web	
  	
  
applicaHons	
  discover	
  and	
  	
  
bind	
  to	
  containers?	
  
Docker	
  PlaUorm:	
  Problem-­‐4	
  Service	
  Discovery	
  
34	
  
35
Docker	
  PlaUorm:	
  Problem-­‐3	
  Service	
  Discovery	
  
35	
  
36
Problem:	
  How	
  do	
  our	
  browser	
  applicaHons	
  use	
  services	
  deployed	
  in	
  containers?	
  
We	
  can	
  use	
  Hashicorp’s	
  Consul	
  Template	
  for	
  service	
  discovery	
  and	
  Varnish	
  for	
  load	
  balancing.	
  	
  
Consul	
  Template	
  detects	
  containers	
  in	
  Consul	
  and	
  updates	
  Varnish	
   configuraHon	
  
§  Consul	
  Template	
  parHcipates	
  in	
  the	
  Consul	
  cluster	
  using	
  Consul	
  Client	
  
§  Consul	
  Template	
  automaHcally	
  adds	
  healthy	
  containers	
  and	
  removes	
  sick	
  containers	
  from	
  the	
  Varnish	
  	
  
load	
  balancer	
  by	
  updaHng	
  Varnish	
  configuraHon	
  
§  Browser	
  applicaHons	
  use	
  Varnish	
  routes	
  to	
  reach	
  services	
  running	
  in	
  containers	
  
36	
  
37
Docker	
  PlaUorm:	
  Service	
  Discovery	
  -­‐	
  SoluMon	
  
Problem:	
  How	
  can	
  	
  
containers	
  discover	
  	
  
and	
  bind	
  to	
  other	
  	
  
containers?	
  
Docker	
  PlaUorm:	
  Problem-­‐5	
  Container	
  Dependencies	
  
37	
  
38
Docker	
  PlaUorm:	
  Problem-­‐5	
  Container	
  Dependencies	
  
38	
  
39
Problem:	
  How	
  can	
  containers	
  find	
  their	
  containerized	
  dependencies	
  on	
  the	
  same	
  host	
  and	
  different	
  hosts?	
  
We	
  can	
  use	
  Consul,	
  Nginx	
  and	
  Consul	
  Template	
  to	
  implement	
  a	
  “Service	
  Proxy”	
  for	
  inter	
  and	
   intra-­‐host	
  
container	
  communicaHon.	
  
§  A	
  uHlity	
  container	
  called	
  “Service	
  Proxy”	
  that	
  uses	
  Consul’s	
  service	
  directory	
  to	
  locate	
  a	
  container's	
  ip	
  	
  
address	
  and	
  port	
  
§  “Service	
  Proxy”	
  then	
  uses	
  Consul	
  Template	
  to	
  create	
  an	
  nginx.conf	
  with	
  load	
  balanced	
  routes	
  for	
  each	
  	
  
service	
  container	
  
§  Docker	
  Links	
  work	
  for	
  intra-­‐host	
  dependencies	
  but	
  with	
  a	
   gotcha	
  
39
40
Docker	
  PlaUorm:	
  Container	
  Dependencies	
  -­‐	
  SoluMon	
  
Problem:	
   How	
   do	
  	
  
we	
  detect	
  failed	
  or	
  	
  
failing	
  containers?	
  
Docker	
  PlaUorm:	
  Problem-­‐6	
  OperaMons	
  &	
  Monitoring	
  
40	
  
41
Problem:	
   How	
   do	
  	
  
we	
  detect	
  failed	
  or	
  	
  
failing	
  containers?	
  
Docker	
  PlaUorm:	
  Problem-­‐6	
  OperaMons	
  &	
  Monitoring	
  
41	
  
42
Uptime	
  
Problem:	
  How	
  do	
  we	
  monitor	
  containers	
  and	
  noDfy	
  and	
  escalate	
  when	
  containerized	
  services	
  aren’t	
  healthy?	
  
We	
  can	
  use	
  UpHme	
  and	
  VictorOps	
  monitor	
  our	
  containerized	
  services.	
  
§  A	
  uHlity	
  container	
  monitors	
  Docker	
  container	
  lifecycle	
  events	
  and	
  automaDcally	
  registers	
  a	
  service	
  	
  
check	
  with	
  UpDme	
  when	
  a	
  container	
  starts	
  
§  UpHme	
  service	
  interrupDons	
  to	
  VictorOps	
  for	
  on-­‐call	
  scheduling,	
  paging	
  and	
  escalaHon	
  
42
43
Docker	
  PlaUorm:	
  OperaMons	
  &	
  Monitoring	
  -­‐	
  SoluMon	
  
Problem:	
  How	
  do	
  we	
  	
  
monitor	
  the	
  resource	
  	
  
usage	
  of	
  hosts	
  and	
  	
  
containers?	
  
Docker	
  PlaUorm:	
  Problem-­‐7	
  Host	
  Monitoring	
  
43	
  
44
Docker	
  PlaUorm:	
  Problem-­‐7	
  Host	
  Monitoring	
  
44	
  
45
Problem:	
  How	
  do	
  we	
  monitor	
  our	
  Docker	
  host’s	
  resource	
   usage?	
  
We	
  can	
  use	
  Datadog	
  to	
  monitor	
  the	
  Docker	
  host	
  uHlizaHon	
  and	
  the	
  service’s	
  	
  metrics.	
  
§  Datadog	
  helps	
  visualize	
  the	
  resource	
  usage	
  on	
  a	
  host	
  
§  Datadog	
  helps	
  understand	
  how	
  our	
  services	
  are	
  performing	
  
§  Datadog	
  helps	
  understand	
  how	
  to	
  “pack”	
  containers	
  onto	
  hosts	
  by	
  exposing	
  the	
  current	
  uHlizaHon	
  of	
  	
  
CPU	
  and	
  memory	
  resources	
  on	
  the	
  host	
  
45
46
Docker	
  PlaUorm:	
  Problem-­‐7	
  Host	
  Monitoring	
  
UPTIME	
  
Docker	
  PlaUorm	
  -­‐	
  Overview	
  
46	
  
47
Docker	
  Eco	
  System	
  –	
  An	
  overwhelming	
  partnership	
  
47	
  
48
Future…	
  
Container	
  by	
  default	
  
The	
  Docker	
  container	
  technology	
  and	
  the	
  Drillinginfo	
  Docker	
  	
  
Pla3orm	
  provide	
  our	
  “micro-­‐services”	
  infrastructure	
  the	
  following	
  	
  
benefits:	
  
•  Reduced	
  cost	
  for	
  IaaS	
  hosHng	
  
•  Reduced	
  waste	
  of	
  virtual	
  machine	
  resources	
  
•  Standardized	
  deployment	
  mechanism	
  for	
  “micro-­‐services”	
  
•  Standardized	
  service	
  directory,	
  service	
  discovery	
  
•  Standardized	
  metrics	
  dashboards,	
  monitoring	
  and	
  alerHng	
  
49
QuesMon?	
  
50

More Related Content

What's hot

Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerKuan Yen Heng
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...Jérôme Petazzoni
 
Dockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec KraloveDockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec Kralovedamovsky
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerJérôme Petazzoni
 
Docker and DevOps --- new IT culture
Docker and DevOps --- new IT cultureDocker and DevOps --- new IT culture
Docker and DevOps --- new IT cultureTerry Chen
 
Basic docker for developer
Basic docker for developerBasic docker for developer
Basic docker for developerWeerayut Hongsa
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...Docker, Inc.
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshopRuncy Oommen
 
Docker fundamentals
Docker fundamentalsDocker fundamentals
Docker fundamentalsAlper Unal
 
Enable Fig to deploy to multiple Docker servers by Willy Kuo
Enable Fig to deploy to multiple Docker servers by Willy KuoEnable Fig to deploy to multiple Docker servers by Willy Kuo
Enable Fig to deploy to multiple Docker servers by Willy KuoDocker, Inc.
 
Docker workshop
Docker workshopDocker workshop
Docker workshopEvans Ye
 
Locally it worked! virtualizing docker
Locally it worked! virtualizing dockerLocally it worked! virtualizing docker
Locally it worked! virtualizing dockerSascha Brinkmann
 
Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014Rafe Colton
 
Vagrant and docker
Vagrant and dockerVagrant and docker
Vagrant and dockerDuckDuckGo
 
From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017Chris Tankersley
 

What's hot (20)

Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...
 
Dockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec KraloveDockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec Kralove
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
 
Docker and DevOps --- new IT culture
Docker and DevOps --- new IT cultureDocker and DevOps --- new IT culture
Docker and DevOps --- new IT culture
 
Basic docker for developer
Basic docker for developerBasic docker for developer
Basic docker for developer
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
 
Docker, LinuX Container
Docker, LinuX ContainerDocker, LinuX Container
Docker, LinuX Container
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
 
Docker by Example - Quiz
Docker by Example - QuizDocker by Example - Quiz
Docker by Example - Quiz
 
Docker fundamentals
Docker fundamentalsDocker fundamentals
Docker fundamentals
 
Enable Fig to deploy to multiple Docker servers by Willy Kuo
Enable Fig to deploy to multiple Docker servers by Willy KuoEnable Fig to deploy to multiple Docker servers by Willy Kuo
Enable Fig to deploy to multiple Docker servers by Willy Kuo
 
A Hands-on Introduction to Docker
A Hands-on Introduction to DockerA Hands-on Introduction to Docker
A Hands-on Introduction to Docker
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
Locally it worked! virtualizing docker
Locally it worked! virtualizing dockerLocally it worked! virtualizing docker
Locally it worked! virtualizing docker
 
Dockercon EU 2014
Dockercon EU 2014Dockercon EU 2014
Dockercon EU 2014
 
Vagrant and docker
Vagrant and dockerVagrant and docker
Vagrant and docker
 
From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017From Docker to Production - SunshinePHP 2017
From Docker to Production - SunshinePHP 2017
 

Viewers also liked

Livros essenciais da literatura brasileira
Livros essenciais da literatura brasileiraLivros essenciais da literatura brasileira
Livros essenciais da literatura brasileiraCamila Palaro
 
Ericsson TSRU 413221/1600
Ericsson TSRU 413221/1600Ericsson TSRU 413221/1600
Ericsson TSRU 413221/1600savomir
 
Toekomst van afvalwater pomptechnologie - Stefan Abelin
Toekomst van afvalwater pomptechnologie - Stefan AbelinToekomst van afvalwater pomptechnologie - Stefan Abelin
Toekomst van afvalwater pomptechnologie - Stefan AbelinXylem Water Solutions Benelux
 
Sturing van rioolgemalen - Andrew Faasen en Klaas-Jan van Heeringen
Sturing van rioolgemalen - Andrew Faasen en Klaas-Jan van HeeringenSturing van rioolgemalen - Andrew Faasen en Klaas-Jan van Heeringen
Sturing van rioolgemalen - Andrew Faasen en Klaas-Jan van HeeringenXylem Water Solutions Benelux
 
Metodologia de la investigacion hipotesis
Metodologia de la investigacion hipotesisMetodologia de la investigacion hipotesis
Metodologia de la investigacion hipotesisCarlos Cahuana Aguilar
 
1 tema quechua 2011 generalidades (1)
1 tema quechua 2011 generalidades (1)1 tema quechua 2011 generalidades (1)
1 tema quechua 2011 generalidades (1)elenaqw
 
Yo cuando grande isaac santa
Yo cuando grande isaac santaYo cuando grande isaac santa
Yo cuando grande isaac santaisaacsanta
 
Institutional regulations darcie
Institutional regulations   darcieInstitutional regulations   darcie
Institutional regulations darcieMarshallsandawasna
 
Personal de la empresa
Personal de la empresaPersonal de la empresa
Personal de la empresaCamilo Arevalo
 
Portfolio - Nicolas Martinez
Portfolio - Nicolas MartinezPortfolio - Nicolas Martinez
Portfolio - Nicolas MartinezNicolás Martinez
 
Apresentação germano 508
Apresentação germano 508Apresentação germano 508
Apresentação germano 508Angelice Santos
 

Viewers also liked (13)

Livros essenciais da literatura brasileira
Livros essenciais da literatura brasileiraLivros essenciais da literatura brasileira
Livros essenciais da literatura brasileira
 
Kane
KaneKane
Kane
 
Ericsson TSRU 413221/1600
Ericsson TSRU 413221/1600Ericsson TSRU 413221/1600
Ericsson TSRU 413221/1600
 
OIKOS
OIKOSOIKOS
OIKOS
 
Toekomst van afvalwater pomptechnologie - Stefan Abelin
Toekomst van afvalwater pomptechnologie - Stefan AbelinToekomst van afvalwater pomptechnologie - Stefan Abelin
Toekomst van afvalwater pomptechnologie - Stefan Abelin
 
Sturing van rioolgemalen - Andrew Faasen en Klaas-Jan van Heeringen
Sturing van rioolgemalen - Andrew Faasen en Klaas-Jan van HeeringenSturing van rioolgemalen - Andrew Faasen en Klaas-Jan van Heeringen
Sturing van rioolgemalen - Andrew Faasen en Klaas-Jan van Heeringen
 
Metodologia de la investigacion hipotesis
Metodologia de la investigacion hipotesisMetodologia de la investigacion hipotesis
Metodologia de la investigacion hipotesis
 
1 tema quechua 2011 generalidades (1)
1 tema quechua 2011 generalidades (1)1 tema quechua 2011 generalidades (1)
1 tema quechua 2011 generalidades (1)
 
Yo cuando grande isaac santa
Yo cuando grande isaac santaYo cuando grande isaac santa
Yo cuando grande isaac santa
 
Institutional regulations darcie
Institutional regulations   darcieInstitutional regulations   darcie
Institutional regulations darcie
 
Personal de la empresa
Personal de la empresaPersonal de la empresa
Personal de la empresa
 
Portfolio - Nicolas Martinez
Portfolio - Nicolas MartinezPortfolio - Nicolas Martinez
Portfolio - Nicolas Martinez
 
Apresentação germano 508
Apresentação germano 508Apresentação germano 508
Apresentação germano 508
 

Similar to Docker basic

Docker 101: An Introduction
Docker 101: An IntroductionDocker 101: An Introduction
Docker 101: An IntroductionPOSSCON
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the Worlddamovsky
 
Docker for developers
Docker for developersDocker for developers
Docker for developersAnvay Patil
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with DockerGeeta Vinnakota
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...Ambassador Labs
 
Containers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkContainers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkRed Hat Developers
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAlan Forbes
 
Lecture eight to be introduced in class.
Lecture eight to be introduced in class.Lecture eight to be introduced in class.
Lecture eight to be introduced in class.nigamsajal14
 
Domino on docker version 2
Domino on docker version 2Domino on docker version 2
Domino on docker version 2Slobodan Lohja
 
Docker for Dummies
Docker for DummiesDocker for Dummies
Docker for DummiesRoel Hartman
 
Docker introduction
Docker introductionDocker introduction
Docker introductionJo Ee Liew
 
Docker Oxford launch - Introduction to Docker
Docker Oxford launch - Introduction to DockerDocker Oxford launch - Introduction to Docker
Docker Oxford launch - Introduction to Dockerjonatanblue
 
January OpenNTF Webinar: 4D - Domino Docker Deep Dive
January OpenNTF Webinar: 4D - Domino Docker Deep DiveJanuary OpenNTF Webinar: 4D - Domino Docker Deep Dive
January OpenNTF Webinar: 4D - Domino Docker Deep DiveHoward Greenberg
 
Docker puebla bday #4 celebration
Docker puebla bday #4 celebrationDocker puebla bday #4 celebration
Docker puebla bday #4 celebrationRamon Morales
 

Similar to Docker basic (20)

Docker 101: An Introduction
Docker 101: An IntroductionDocker 101: An Introduction
Docker 101: An Introduction
 
Docker workshop GDSC_CSSC
Docker workshop GDSC_CSSCDocker workshop GDSC_CSSC
Docker workshop GDSC_CSSC
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Docker for developers
Docker for developersDocker for developers
Docker for developers
 
Dockerize All The Things
Dockerize All The ThingsDockerize All The Things
Dockerize All The Things
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
 
Containers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkContainers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech Talk
 
Docker
DockerDocker
Docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Lecture eight to be introduced in class.
Lecture eight to be introduced in class.Lecture eight to be introduced in class.
Lecture eight to be introduced in class.
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Domino on docker version 2
Domino on docker version 2Domino on docker version 2
Domino on docker version 2
 
Docker for Dummies
Docker for DummiesDocker for Dummies
Docker for Dummies
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Docker Oxford launch - Introduction to Docker
Docker Oxford launch - Introduction to DockerDocker Oxford launch - Introduction to Docker
Docker Oxford launch - Introduction to Docker
 
January OpenNTF Webinar: 4D - Domino Docker Deep Dive
January OpenNTF Webinar: 4D - Domino Docker Deep DiveJanuary OpenNTF Webinar: 4D - Domino Docker Deep Dive
January OpenNTF Webinar: 4D - Domino Docker Deep Dive
 
Docker puebla bday #4 celebration
Docker puebla bday #4 celebrationDocker puebla bday #4 celebration
Docker puebla bday #4 celebration
 

Recently uploaded

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 

Recently uploaded (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

Docker basic

  • 1. 2 Who  am  I?   Somenath  Ghosh   §  Techo  Delivery  Manager  of  Pla3orm  and  Architecture     at  Bank  of  America.   §  10+  years  industry  experience  in  BFS   §  I  love  APIs  and  Services  and   of  course,  the   ContainerizaHon/Docker!   § Agile  and  DevOps  EnthuciasHc     Contact:   Email:  somenath.ghosh@tcs.com   Website:  hQp://somenathghosh.space  |  hQps://somenathghosh.space    
  • 2. Agenda   1   2   3   4   5   What  is  Docker   Why  we  need  Docker   Docker  Architecture  Working  with  Docker   Eco-­‐system  
  • 4. The  hell  of  the  shipping  things   Shipping  Containers  -­‐  Shipping  Matrix  From  Hell   4
  • 5. The  hell  of  the  shipping  things   Shipping  Containers  -­‐  Standard  Shipping  Container   5
  • 6. The  hell  of  the  shipping  things   Docker  Containers  -­‐  Standard  Shipping  Container   6
  • 7. The  hell  of  the  shipping  things   SOLVED!  –  The  soluMon  is  Container   7
  • 9. What  is  Container/Docker  Container?   Docker  is  an  open-­‐source  project  that  automates  the  deployment  of  applicaHons  inside  soVware  containers,  by     providing  an  addiHonal  layer  of  abstracHon  and  automaHon  of  operaHng  system–level    virtualizaHon.   [Source:  en.wikipedia.org]   Dockervs.  Virtual  Machine   Virtual Machine Docker win,  *nix,  etc.   No  Guest  OS   10
  • 10. Docker  Technology   •  libvirt:  Pla3orm  VirtualizaHon   •  LXC  (LinuX  Containers):  MulHple  isolated  Linux     systems  (containers)  on  a  single  host   •  Layered  File  System   10
  • 11. Run  PlaUorms   Various  Linux  distribuHons  (Ubuntu,  Fedora,     RHEL,  Centos,  openSUSE)   Cloud  (Amazon  EC2,  Google  Compute  Engine,   Rackspace,  Heroku)   Windows:   2014-­‐Oct:  Microso'  announces  plans  to     integrate  Docker  with  next  release  of  Windows     Server   2016:  Windows  Server  2016  naHvely  supports   Docker   Docker  on  Linux  and  Win  server  2016   11
  • 12. Why  Docker?   12 Since  My  World  Needed  To  Change   COST  EffecHve   WASTE  Management   Fluidity   DevOps  &  Agility   The  IT  Cost  bill  is  too  damn    high! Decline   in   the   global   price   of     oil   causing  churn  in  our  business!   We  weren’t  using  the  compute  and     memory  resources  purchased  from     hardware  provider/IaaS!   •  Nearly  all  “micro-­‐services”  were     at  1%  CPU  uHlizaHon   •  Nearly   all   “micro-­‐services’   were     only   using   40%   of   memory     (JVM)   •  150+                     virtual  machines     essenHally  sipng  idle   How  would  we  leave    AMZN    if    we   wanted  to?   •  Could  we  use  own  IT’s     Openstack  pla3orm?   •  What  about  alternate  IaaS   providers  like  Rackspace  or     Azure  or  Google  Cloud?   •  What   about   Container   as   a     Service   (CaaS)   providers   like     Joyent,  Tutum  or  Docker  Cloud?   •  What      about  using      Amazon’s   Container  Service?   •  Developer  does  not  have  to  care   about  Infra  any  more   •  Developer  can  focus  on  what     they  like  to  do.   •  The  thing  works  on    Developer’s   PROD   agility   lesser   machine  can  work  on     machine  too.   •  Sustainable  to  market     and  customer  demand   •  Faster  delivery  with     operaHon  overhead.  
  • 13. Why  you  should  bother  about  it?   13
  • 14. Let  us  do  some  work  -­‐  Hello  World!   Simple  but  powerful  Command   > docker run ubuntu echo Hello World > docker images [-a] > docker ps –a Then,  run  echo  Hello     World  Command  Run  container  Ubuntu     from  Image  Ubuntu   List  all  images   List  all  running  container   images:     run:     tag:     pull:     rmi:   14 List  all  local  images   Create  a  container  from  an  image  and  execute  a  command  in  it     Tag  an  image   Download  image  from  repository     Delete  a  local  image   This  will  also  remove  intermediate  images  if  no  longer  used  
  • 15. More  commands   15 o  ps:   o  ps  –a:   o  top:   o  start:   o  stop:   o  pause:   o  rm:   List  all  running  containers   List  all  containers  (incl.  stopped)     Display  processes  of  a  container     Start  a  stopped  container   Stop  a  running  container   Pause  all  processes  within  a  container   Delete  a  container   o commit:  Create  an  image  from  a  container  
  • 16. Dockerfile   16 •  Create  images  automaHcally  using  a   build  script:   «Dockerfile»   •  Can  be  versioned  in  a  version  control   system  like  Git    or  SVN,  along  with  all   dependencies   •  Docker  Hub  can  automaHcally  build   images  based  on    dockerfiles  on  Github   # # Super simple example of a Dockerfile # FROM ubuntu:latest MAINTAINER Somenath Ghosh ”somenath.ghosh@tcs.com" RUN apt-get update RUN apt-get install -y python python-pip wget RUN pip install Flask ADD hello.py /home/hello.py WORKDIR /home
  • 17. Dockerfile  Example   17 •  Dockerfile:   •  FROM ubuntu ß Build  from  Base  Image   Hello My World dir /files ENV DOCK_MESSAGE ADD CMD ["bash", "someScript"] •  docker build [DockerFileDir] ß Build  image  from  Dockerfile •  docker inspect [imageId] ß Inspect  the  image  
  • 18. MounMng  Volumes  to  a  Container   18 •  docker run –ti –v /hostLog:/log ubuntu Run  second  container:  Volume  can  be  shared   •  docker run –ti --volumes-from firstContainerName ubuntu
  • 19. Publishing  Port   20 docker run –t –p 8080:80 ubuntu nc –l 80 Map  container  port  80  to  host  port  8080.  Check  on  host:  nc  localhost     8080   Link  with  other  docker  container   docker run -ti --link containerName:alias ubuntu
  • 20. Image  vs.  Container   Base  Image   ubuntu:latest   Container     cid1   run   Container     cid1   cmd  à new  state   New  Image     iid1   commit   base  image   Container     Ccoindt2ainer   Ccoindt3ainer     cid4   run   Class Object-­‐1   Object-­‐2   Object-­‐3   Object-­‐n   Class  and  Object  Analogy   Image  =  Class     Container  =  Object   Image  evoluHon   20
  • 22. Build,  Ship  and  Run   22
  • 24. Running  containerized  “micro-­‐services”  in  producHon  requires  much  more  than  just   Docker.   Ø  It  requires  a  “Pla6orm”  that  can  do  the  following:   §  Building  and  pushing  Docker  images  to  an  image  repository   §  Pulling  images,  provisioning  and  scheduling  containers   §  Discovering  and  binding  to  services  running  as  containers   §  Containers  discovering  and  binding  to  other  containers   §  OperaHng  and  managing  services  in  containers   24 25 But  Containers  Aren’t  Enough!  
  • 25. Problem:  Detect     changes  at  Github     and  build  a  new     Docker  image   Problem:  Where     do  we  store  our     Docker  images?   Docker  PlaUorm:  Problem-­‐1  Build  &  Store  Images   25   26
  • 26. Problem:  Where     do  we  store  our     Docker  images?   Docker  PlaUorm:  Problem-­‐1  Build  &  Store  Images   26   27
  • 27. Problem:  How  do  we  build  images?   Jenkins  automates  the  image  builds.   §  Started  building  our  images  with  Ubuntu  14.04  (1GB)   §  SeQled  on  Alpine,  a  minimal  linux  distribuHon  (5MB)   §  Typical  “micro-­‐services”  now  <  500MB   Problem:  Where  do  we  put  them?     Dockerhub.   §  Docker  Trusted  Registry  and  Core  OS  Enterprise  Registry   §  SeQled  on  using  Dockerhub   §  Use  latest  and  sem-­‐ver  tags  on  our  images   27 28 Docker  PlaUorm:  Build  &  Store  Images  -­‐  SoluMon  
  • 28. Problem:  Which     host  do  the     containers  run     on?   Dockerhub   Problem:  How     are  containers     started  and     configured?   Docker  PlaUorm:  Problem-­‐2  Provisioning  &  Scheduling   28   29
  • 29. Dockerhub   Problem:  How     are  containers     started  and     configured?   Docker  PlaUorm:  Problem-­‐2  Provisioning  &  Scheduling   30   30
  • 30. Problem:  How  do  we  determine  which  host  to  run  a  container  on  and  how  do  we  configure  and  start  the     container?   We  can  solve  scheduling  and  provisioning  with  Chef.   §  Chef  schedules  containers  on  specific  hosts  using  Chef  roles   §  Chef  provisions  and  configures  containers  using  Chef  recipes  and   environments   §  Each  “micro-­‐service”  has  an  associated  Chef  recipe  that  converts  Chef  aQributes  into  container     environment  variables   30 31 Docker  PlaUorm:  Provisioning  &  Scheduling  -­‐  SoluMon  
  • 31. Problem:  How     can  web     applicaHons     discover  and     bind  to     containers?  Web  ApplicaHons   Docker  Containers   Docker  PlaUorm:  Problem-­‐3  Service  Directory/Registry   31   32
  • 32. Web  ApplicaHons   Docker  Containers   Docker  PlaUorm:  Problem-­‐3  Service  Directory/Registry   32   33
  • 33. Problem:  How  do  our  browser  applicaHons  locate  service  containers?   We  can  use  Hashicorp’s  Consul  as  our  service  directory.   Containers  automaDcally  register  themselves  with  Consul  when  started.   §  The  Docker  daemon  emits  real-­‐Dme  lifecycle  events  for  container    start   §  A  uHlity  container  called  Registrator  to  automate  the  registraHon  of  “micro-­‐service”  containers  with     Consul   §  Containers  are  registered  with  a  health  check  that  Consul  polls  to  determine  the  health  of  the    container   33 34 Docker  PlaUorm:  Service  Directory/Registry  -­‐  SoluMon  
  • 34. Problem:  How  can  web     applicaHons  discover  and     bind  to  containers?   Docker  PlaUorm:  Problem-­‐4  Service  Discovery   34   35
  • 35. Docker  PlaUorm:  Problem-­‐3  Service  Discovery   35   36
  • 36. Problem:  How  do  our  browser  applicaHons  use  services  deployed  in  containers?   We  can  use  Hashicorp’s  Consul  Template  for  service  discovery  and  Varnish  for  load  balancing.     Consul  Template  detects  containers  in  Consul  and  updates  Varnish   configuraHon   §  Consul  Template  parHcipates  in  the  Consul  cluster  using  Consul  Client   §  Consul  Template  automaHcally  adds  healthy  containers  and  removes  sick  containers  from  the  Varnish     load  balancer  by  updaHng  Varnish  configuraHon   §  Browser  applicaHons  use  Varnish  routes  to  reach  services  running  in  containers   36   37 Docker  PlaUorm:  Service  Discovery  -­‐  SoluMon  
  • 37. Problem:  How  can     containers  discover     and  bind  to  other     containers?   Docker  PlaUorm:  Problem-­‐5  Container  Dependencies   37   38
  • 38. Docker  PlaUorm:  Problem-­‐5  Container  Dependencies   38   39
  • 39. Problem:  How  can  containers  find  their  containerized  dependencies  on  the  same  host  and  different  hosts?   We  can  use  Consul,  Nginx  and  Consul  Template  to  implement  a  “Service  Proxy”  for  inter  and   intra-­‐host   container  communicaHon.   §  A  uHlity  container  called  “Service  Proxy”  that  uses  Consul’s  service  directory  to  locate  a  container's  ip     address  and  port   §  “Service  Proxy”  then  uses  Consul  Template  to  create  an  nginx.conf  with  load  balanced  routes  for  each     service  container   §  Docker  Links  work  for  intra-­‐host  dependencies  but  with  a   gotcha   39 40 Docker  PlaUorm:  Container  Dependencies  -­‐  SoluMon  
  • 40. Problem:   How   do     we  detect  failed  or     failing  containers?   Docker  PlaUorm:  Problem-­‐6  OperaMons  &  Monitoring   40   41
  • 41. Problem:   How   do     we  detect  failed  or     failing  containers?   Docker  PlaUorm:  Problem-­‐6  OperaMons  &  Monitoring   41   42 Uptime  
  • 42. Problem:  How  do  we  monitor  containers  and  noDfy  and  escalate  when  containerized  services  aren’t  healthy?   We  can  use  UpHme  and  VictorOps  monitor  our  containerized  services.   §  A  uHlity  container  monitors  Docker  container  lifecycle  events  and  automaDcally  registers  a  service     check  with  UpDme  when  a  container  starts   §  UpHme  service  interrupDons  to  VictorOps  for  on-­‐call  scheduling,  paging  and  escalaHon   42 43 Docker  PlaUorm:  OperaMons  &  Monitoring  -­‐  SoluMon  
  • 43. Problem:  How  do  we     monitor  the  resource     usage  of  hosts  and     containers?   Docker  PlaUorm:  Problem-­‐7  Host  Monitoring   43   44
  • 44. Docker  PlaUorm:  Problem-­‐7  Host  Monitoring   44   45
  • 45. Problem:  How  do  we  monitor  our  Docker  host’s  resource   usage?   We  can  use  Datadog  to  monitor  the  Docker  host  uHlizaHon  and  the  service’s    metrics.   §  Datadog  helps  visualize  the  resource  usage  on  a  host   §  Datadog  helps  understand  how  our  services  are  performing   §  Datadog  helps  understand  how  to  “pack”  containers  onto  hosts  by  exposing  the  current  uHlizaHon  of     CPU  and  memory  resources  on  the  host   45 46 Docker  PlaUorm:  Problem-­‐7  Host  Monitoring  
  • 46. UPTIME   Docker  PlaUorm  -­‐  Overview   46   47
  • 47. Docker  Eco  System  –  An  overwhelming  partnership   47   48
  • 48. Future…   Container  by  default   The  Docker  container  technology  and  the  Drillinginfo  Docker     Pla3orm  provide  our  “micro-­‐services”  infrastructure  the  following     benefits:   •  Reduced  cost  for  IaaS  hosHng   •  Reduced  waste  of  virtual  machine  resources   •  Standardized  deployment  mechanism  for  “micro-­‐services”   •  Standardized  service  directory,  service  discovery   •  Standardized  metrics  dashboards,  monitoring  and  alerHng   49