Slide 1

Slide 1 text

@amjithr Intro to Docker PYCON ■ Saturday, April 12, 14

Slide 2

Slide 2 text

@amjithr Hi  Saturday, April 12, 14

Slide 3

Slide 3 text

Saturday, April 12, 14

Slide 4

Slide 4 text

@amjithr Why? Saturday, April 12, 14

Slide 5

Slide 5 text

@amjithr Why? Saturday, April 12, 14

Slide 6

Slide 6 text

@amjithr Why? Saturday, April 12, 14

Slide 7

Slide 7 text

@amjithr Why? Saturday, April 12, 14

Slide 8

Slide 8 text

@amjithr Why? Saturday, April 12, 14

Slide 9

Slide 9 text

@amjithr Why? Saturday, April 12, 14

Slide 10

Slide 10 text

@amjithr Why? Celery Saturday, April 12, 14

Slide 11

Slide 11 text

@amjithr Why? Celery Saturday, April 12, 14

Slide 12

Slide 12 text

@amjithr WHAT’S Docker? Saturday, April 12, 14

Slide 13

Slide 13 text

@amjithr WHAT’S Docker? Not Pants Saturday, April 12, 14

Slide 14

Slide 14 text

@amjithr DotCloud -> Docker Inc Jan Written in Go Active community History Saturday, April 12, 14

Slide 15

Slide 15 text

@amjithr “Docker is an open-source engine that automates the deployment of any application as a lightweight, portable, self-sufficient container that will run virtually anywhere*.” Saturday, April 12, 14

Slide 16

Slide 16 text

@amjithr CHROOT BSD JAILS SOLARIS ZONES What? Saturday, April 12, 14

Slide 17

Slide 17 text

@amjithr Linux Containers AUFS Git like versioning REST API What? Saturday, April 12, 14

Slide 18

Slide 18 text

@amjithr What? Bare Metal Host OS Hypervisor Guest OS Libs AppA Guest OS Libs AppB Guest OS Libs AppC Bare Metal Host OS D o c k e r Libs Libs App A App A’ App B App B’ VM Container Saturday, April 12, 14

Slide 19

Slide 19 text

@amjithr Lightweight  Isolated Instances Faster than VMs Why? Saturday, April 12, 14

Slide 20

Slide 20 text

@amjithr docs.docker.io - Installation instructions OS X - boot docker (VM) + docker client Setup Linux C0 C1 client Saturday, April 12, 14

Slide 21

Slide 21 text

@amjithr docs.docker.io - Installation instructions OS X - boot docker (VM) + docker client Setup OS X VBox linux C0 C1 client Linux C0 C1 client Saturday, April 12, 14

Slide 22

Slide 22 text

@amjithr Docker Daemon - Server Docker Client - Client Terminology Saturday, April 12, 14

Slide 23

Slide 23 text

@amjithr Terminology Daemon Linux TCP Socket Client Client Linux TCP Client OS X TCP Saturday, April 12, 14

Slide 24

Slide 24 text

@amjithr  DEMO Saturday, April 12, 14

Slide 25

Slide 25 text

@amjithr Images - Read-only snapshot Containers - Instantiation of an Image Terminology Saturday, April 12, 14

Slide 26

Slide 26 text

@amjithr Terminology Master Copy Photocopy B + Margin Notes Photocopy A + Highlights Photocopy C Saturday, April 12, 14

Slide 27

Slide 27 text

@amjithr Terminology IMAGE Lib Bin Env Vars Files ContainerB Lib Bin Env Vars’ Files ContainerA Lib Bin Env Vars Files ContainerC Lib Bin Env Vars Files’ Saturday, April 12, 14

Slide 28

Slide 28 text

@amjithr Registry - PyPI for docker images Repository - Projects in the Registry Terminology Saturday, April 12, 14

Slide 29

Slide 29 text

@amjithr docker pull docker images docker run docker ps docker logs Basics Saturday, April 12, 14

Slide 30

Slide 30 text

@amjithr Dockerfile - Series of commands Automation Saturday, April 12, 14

Slide 31

Slide 31 text

@amjithr Dockerfile FROM base ENV TEST_ENV true ADD test_file / RUN apt-get update RUN apt-get install -y fortune cowsay CMD fortune | cowsay Saturday, April 12, 14

Slide 32

Slide 32 text

@amjithr Django Port Forwarding docker run -d django-docker Network Saturday, April 12, 14

Slide 33

Slide 33 text

@amjithr Django Port Forwarding docker run -d -p host:container django-docker Network Saturday, April 12, 14

Slide 34

Slide 34 text

@amjithr Volumes - Mount folders - host/container docker run -v host_path:container_path django Links - Service discovery through env vars docker run --link mysql:db --name webapp django Misc Saturday, April 12, 14

Slide 35

Slide 35 text

@amjithr Docker daemon is also a server REST API - List of images/containers - Create/Start/Stop/Delete containers - Websocket attach - Shipyard REST API Saturday, April 12, 14

Slide 36

Slide 36 text

Saturday, April 12, 14

Slide 37

Slide 37 text

@amjithr PERFORMANCE! Saturday, April 12, 14

Slide 38

Slide 38 text

@amjithr New Relic adapter_cherrypy.py adapter_flup.py adapter_gevent.py adapter_gunicorn.py adapter_meinheld.py adapter_paste.py adapter_waitress.py adapter_wsgiref.py application_celery.py application_gearman.py component_cornice.py component_piston.py component_tastypie.py coroutines_gevent.py database_dbapi2.py database_mysql.py database_mysqldb.py database_psycopg2.py database_sqlite.py datastore_pymongo.py external_dropbox.py external_facepy.py external_feedparser.py external_httplib.py external_httplib2.py external_pywapi.py external_requests.py external_thrift.py external_urllib.py external_urllib2.py external_urllib3.py external_xmlrpclib.py framework_bottle.py framework_cherrypy.py framework_django.py framework_flask.py framework_pylons.py framework_pyramid.py framework_tornado.py framework_twisted.py framework_web2py.py framework_webpy.py memcache_memcache.py memcache_pylibmc.py memcache_umemcache.py middleware_weberror.py solr_pysolr.py solr_solrpy.py template_genshi.py template_jinja2.py template_mako.py Saturday, April 12, 14

Slide 39

Slide 39 text

@amjithr New Relic Saturday, April 12, 14

Slide 40

Slide 40 text

@amjithr New Relic Saturday, April 12, 14

Slide 41

Slide 41 text

@amjithr New Relic Saturday, April 12, 14

Slide 42

Slide 42 text

@amjithr New Relic Saturday, April 12, 14

Slide 43

Slide 43 text

@amjithr New Relic Saturday, April 12, 14

Slide 44

Slide 44 text

@amjithr Problem Celery Saturday, April 12, 14

Slide 45

Slide 45 text

@amjithr Solution Celery Saturday, April 12, 14

Slide 46

Slide 46 text

@amjithr REBUILDING the server is trivial. Cloning a new server is effortless. Why? DEV PROD Saturday, April 12, 14

Slide 47

Slide 47 text

@amjithr Solution  DEV PROD REGISTRY Saturday, April 12, 14

Slide 48

Slide 48 text

@amjithr Website: www.docker.io IRC: freenode #docker google groups: docker-user Community Saturday, April 12, 14

Slide 49

Slide 49 text

@amjithr THANK YOU! @amjithr Saturday, April 12, 14

Slide 50

Slide 50 text

Questions? • Promo: http://newrelic.com/pycon • 30 days of Pro. • Free T-shirt. • In-depth data. Saturday, April 12, 14