• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Láďa Prskavec: Docker.io
 

Láďa Prskavec: Docker.io

on

  • 493 views

 

Statistics

Views

Total Views
493
Views on SlideShare
493
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Láďa Prskavec: Docker.io Láďa Prskavec: Docker.io Presentation Transcript

    • Ladislav  Prskavec  @abtris  -­‐    DEVEL  9.11.2013 1
    • Docker  is  an  open-­‐source  project     to  easily  create  lightweight,  portable,  self-­‐sufficient  containers   from  any  applicaHon.   2
    • The  same  container  that  a  developer  builds  and  tests  on  a   laptop  can  run  at  scale,  in  producHon,  on  VMs,  bare  metal,   OpenStack  clusters,  public  clouds  and  more. 3
    • 4
    • BeNer  than  VMs ★ Size 5
    • BeNer  than  VMs ★ Size   ★ Performance 6
    • BeNer  than  VMs ★ Size   ★ Performance   ★ Portability 7
    • BeNer  than  VMs ★ Size   ★ Performance   ★ Portability   ★ Hardware-­‐centric 8
    • Escape  dependency  hell ★ Cross-­‐plaRorm  dependencies 9
    • Escape  dependency  hell ★ Cross-­‐plaRorm  dependencies   ★ ConflicHng  dependencies 10
    • Escape  dependency  hell ★ Cross-­‐plaRorm  dependencies   ★ ConflicHng  dependencies   ★ Custom  dependencies 11
    • Here's  a  typical  Docker  build  process  (Dockerfile) from  ubuntu:12.10   run  apt-­‐get  update   run  DEBIAN_FRONTEND=noninteractive  apt-­‐get  install  -­‐q  -­‐y  python   run  DEBIAN_FRONTEND=noninteractive  apt-­‐get  install  -­‐q  -­‐y  python-­‐pip   run  pip  install  django   run  DEBIAN_FRONTEND=noninteractive  apt-­‐get  install  -­‐q  -­‐y  curl   run  curl  -­‐L  https://github.com/shykes/helloflask/master.tar.gz  |  tar  -­‐xzv   run  cd  helloflask-­‐master  &&  pip  install  -­‐r  requirements.txt 12
    • Under  the  hood ★ GO   ★ The  cgroup  and  namespacing  capabiliHes  of  the  Linux  kernel 13
    • Under  the  hood ★ GO   ★ The  cgroup  and  namespacing  capabiliHes  of  the  Linux  kernel   ★ AUFS,  a  powerful  union  filesystem  with  copy-­‐on-­‐write   capabiliHes 14
    • Under  the  hood ★ GO   ★ The  cgroup  and  namespacing  capabiliHes  of  the  Linux  kernel   ★ AUFS,  a  powerful  union  filesystem  with  copy-­‐on-­‐write   capabiliHes   ★ lxc,  a  set  of  convenience  scripts  to  simplify  the  creaHon  of   Linux  containers 15
    • Zero  downHme  deployment using  private  registry 16
    • App  running  in  prod  hNp://praguejs.cz   ! vagrant@precise64:~$  docker  ps   ! CONTAINER  ID                IMAGE                                                                         ! b2332dffe                      registry.abtris.cz:5000/praguejs:latest   -­‐  Build  local   >  docker  build  -­‐t=praguejs  .   -­‐  Test  local   >  docker  run  -­‐p  49200:3333  praguejs   hNp://localhost:49200   -­‐  Change  some  files   -­‐  Rebuild  &  test   >  docker  build  -­‐t  praguejs   >  docker  run  -­‐p  49200:3333  praguejs 17
    • Push  to  producHon   • Tag  image  in  order  to  push  it
 >  docker  tag  praguejs  registry.abtris.cz:5000/praguejs   • Push  image  to  local  registry
 >  docker  push  registry.abtris.cz:5000/praguejs   • On  producHon  server,  pull  image
 >  docker  pull  registry.abtris.cz:5000/praguejs   • Start  new  container  
 >  docker  run  -­‐d  -­‐p  127.0.0.1::3333  <image>   vagrant@precise64:~$  docker  ps   • Change  configuraHon  at  nginx/haproxy  and  restart   CONTAINER  ID                IMAGE                                                                         b2332dffe                      registry.abtris.cz:5000/praguejs:latest     • See  changes  live d45222331                      1b4f43asds   18
    • 19
    • hNp://m.doporucim.cz/Docker 20