Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Docker: Try to Contain Your Excitement

Docker: Try to Contain Your Excitement

An introduction to the core concepts of docker.

Tyler Bird

April 24, 2014
Tweet

More Decks by Tyler Bird

Other Decks in Programming

Transcript

  1. A Retrospective Began as dotCloud First commit January 18, 2013

    Version 0.1.0 shipped March 25, 2013 11,400 GitHub stars, 1800+ forks
  2. A Retrospective Began as dotCloud First commit January 18, 2013

    Version 0.1.0 shipped March 25, 2013 11,400 GitHub stars, 1800+ forks October 29, 2013 dotCloud becomes Docker
  3. A Retrospective Began as dotCloud First commit January 18, 2013

    Version 0.1.0 shipped March 25, 2013 11,400 GitHub stars, 1800+ forks October 29, 2013 dotCloud becomes Docker Version 0.10 latest stable April 8, 2014
  4. Hardware Virtualization 1966-1972 IBM CP/CMS 1989 Insignia SoftPC 1997 Connectix

    VirtualPC 1999 VMWare Workstation 199x-2002 Xen 2001 IBM AIX LPAR
  5. Hardware Virtualization 1966-1972 IBM CP/CMS 1989 Insignia SoftPC 1997 Connectix

    VirtualPC 1999 VMWare Workstation 199x-2002 Xen 2001 IBM AIX LPAR 2006 Amazon EC2
  6. Hardware Virtualization 1966-1972 IBM CP/CMS 1989 Insignia SoftPC 1997 Connectix

    VirtualPC 1999 VMWare Workstation 199x-2002 Xen 2001 IBM AIX LPAR 2006 Amazon EC2 2007 Sun Logical Domains
  7. Hardware Virtualization 1966-1972 IBM CP/CMS 1989 Insignia SoftPC 1997 Connectix

    VirtualPC 1999 VMWare Workstation 199x-2002 Xen 2001 IBM AIX LPAR 2006 Amazon EC2 2007 Sun Logical Domains 2007 Linux KVM
  8. Hardware Virtualization 1966-1972 IBM CP/CMS 1989 Insignia SoftPC 1997 Connectix

    VirtualPC 1999 VMWare Workstation 199x-2002 Xen 2001 IBM AIX LPAR 2006 Amazon EC2 2007 Sun Logical Domains 2007 Linux KVM 2007 InnoTek VirtualBox
  9. Hardware Virtualization 1966-1972 IBM CP/CMS 1989 Insignia SoftPC 1997 Connectix

    VirtualPC 1999 VMWare Workstation 199x-2002 Xen 2001 IBM AIX LPAR 2006 Amazon EC2 2007 Sun Logical Domains 2007 Linux KVM 2007 InnoTek VirtualBox 2008 MS Hyper-V
  10. Process Virtualization 1979-1982 UNIX chroot 1998 FreeBSD jail 2001 Parallels

    Virtuozzo 2001 Linux-VServer 2005 Solaris Containers
  11. Process Virtualization 1979-1982 UNIX chroot 1998 FreeBSD jail 2001 Parallels

    Virtuozzo 2001 Linux-VServer 2005 Solaris Containers 2005 OpenVZ
  12. Process Virtualization 1979-1982 UNIX chroot 1998 FreeBSD jail 2001 Parallels

    Virtuozzo 2001 Linux-VServer 2005 Solaris Containers 2005 OpenVZ 2008 Linux LXC
  13. Process Virtualization 1979-1982 UNIX chroot 1998 FreeBSD jail 2001 Parallels

    Virtuozzo 2001 Linux-VServer 2005 Solaris Containers 2005 OpenVZ 2008 Linux LXC 2007+ PAAS: Heroku, Joyent, CloudFoundry
  14. Process Virtualization 1979-1982 UNIX chroot 1998 FreeBSD jail 2001 Parallels

    Virtuozzo 2001 Linux-VServer 2005 Solaris Containers 2005 OpenVZ 2008 Linux LXC 2007+ PAAS: Heroku, Joyent, CloudFoundry 2013 Docker
  15. It is a lightweight framework (with a powerful API) that

    provides a lifecycle for building and deploying applications into containers.
  16. Layers Kernel cgroups, namespaces, device mapper bootfs Base image: ubuntu

    Image: Add emacs Image: Add Apache Writable Container
  17. Layers Kernel cgroups, namespaces, device mapper bootfs Base image: ubuntu

    Image: Add emacs Image: Add Apache Writable Container Framework: BUILD
  18. Containers hold the application collection of images run, stop, start,

    move, delete an isolated process Framework: RUN
  19. Registry Registry stores images Layers are tar ball files with

    metadata Public / Private Community warehouse
  20. Registry Registry stores images Layers are tar ball files with

    metadata Public / Private Community warehouse Framework: SHARE
  21. Docker Architecture Client-server application Can run on the same box

    or remotely Communicate through sockets Uses a RESTful API Client sends command Daemon executes command
  22. Trusted Builds Trusted Builds have a number of advantages. For

    example, users of your Trusted Build can be certain that the resulting image was built exactly how it claims to be.
  23. Trusted Builds Use location if using subfolder Repo name by

    purpose Tag name by purpose Create repo