Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Docker: Try to Contain Your Excitement
Search
Tyler Bird
April 24, 2014
Programming
130
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Docker: Try to Contain Your Excitement
An introduction to the core concepts of docker.
Tyler Bird
April 24, 2014
More Decks by Tyler Bird
See All by Tyler Bird
Capistrano: A three act play in multistage deployment strategies.
7hunderbird
1
2.3k
Build a chef-solo Development Environment with Vagrant
7hunderbird
3
2.4k
Using Chef-Solo
7hunderbird
1
2.1k
Rake: Not Your Father's Build Tool
7hunderbird
0
850
Other Decks in Programming
See All in Programming
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
5
810
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
320
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
330
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
170
Performance Optimization With LLMs
xleitix
0
250
[DroidKnights 2026] Workflow AX: From Auto-Documented Policies to E2E Testing
raeminkang
0
540
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
1
300
小さなアプリを作って公開するまで
onozaty
0
150
SODA - FACT BOOK(EN)
sodainc
1
220
高橋メソッドでCVE解説シリーズ 〜CVE-2026-112816〜
hakkadaikon
0
240
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
170
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.2k
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
1k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
So, you think you're a good person
axbom
PRO
2
2.3k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
760
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
670
Building a Scalable Design System with Sketch
lauravandoore
464
34k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
240
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Transcript
Hello I’m Tyler Bird
Hello I’m Tyler Bird Work for Engine Yard
Hello I’m Tyler Bird Work for Engine Yard I love
DevOps
Text Docker
Text Docker Just try and contain your excitement
Who creates docker?
Homepage www.docker.io
The Team www.docker.io/team/
Docker on GitHub github.com/dotcloud/ docker/
When did docker arrive?
A Retrospective
A Retrospective Began as dotCloud
A Retrospective Began as dotCloud First commit January 18, 2013
A Retrospective Began as dotCloud First commit January 18, 2013
Version 0.1.0 shipped March 25, 2013
A Retrospective Began as dotCloud First commit January 18, 2013
Version 0.1.0 shipped March 25, 2013 11,400 GitHub stars, 1800+ forks
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
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
Hardware Virtualization
Hardware Virtualization 1966-1972 IBM CP/CMS
Hardware Virtualization 1966-1972 IBM CP/CMS 1989 Insignia SoftPC
Hardware Virtualization 1966-1972 IBM CP/CMS 1989 Insignia SoftPC 1997 Connectix
VirtualPC
Hardware Virtualization 1966-1972 IBM CP/CMS 1989 Insignia SoftPC 1997 Connectix
VirtualPC 1999 VMWare Workstation
Hardware Virtualization 1966-1972 IBM CP/CMS 1989 Insignia SoftPC 1997 Connectix
VirtualPC 1999 VMWare Workstation 199x-2002 Xen
Hardware Virtualization 1966-1972 IBM CP/CMS 1989 Insignia SoftPC 1997 Connectix
VirtualPC 1999 VMWare Workstation 199x-2002 Xen 2001 IBM AIX LPAR
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
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
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
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
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
Process Virtualization
Process Virtualization 1979-1982 UNIX chroot
Process Virtualization 1979-1982 UNIX chroot 1998 FreeBSD jail
Process Virtualization 1979-1982 UNIX chroot 1998 FreeBSD jail 2001 Parallels
Virtuozzo
Process Virtualization 1979-1982 UNIX chroot 1998 FreeBSD jail 2001 Parallels
Virtuozzo 2001 Linux-VServer
Process Virtualization 1979-1982 UNIX chroot 1998 FreeBSD jail 2001 Parallels
Virtuozzo 2001 Linux-VServer 2005 Solaris Containers
Process Virtualization 1979-1982 UNIX chroot 1998 FreeBSD jail 2001 Parallels
Virtuozzo 2001 Linux-VServer 2005 Solaris Containers 2005 OpenVZ
Process Virtualization 1979-1982 UNIX chroot 1998 FreeBSD jail 2001 Parallels
Virtuozzo 2001 Linux-VServer 2005 Solaris Containers 2005 OpenVZ 2008 Linux LXC
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
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
What is docker?
It is a lightweight framework (with a powerful API) that
provides a lifecycle for building and deploying applications into containers.
What is the framework?
Framework Components
Framework Components Layers
Framework Components Layers Containers
Framework Components Layers Containers Registry
Layers
Layers Kernel
Layers Kernel cgroups, namespaces, device mapper
Layers Kernel cgroups, namespaces, device mapper bootfs
Layers Kernel cgroups, namespaces, device mapper bootfs Base image: ubuntu
Layers Kernel cgroups, namespaces, device mapper bootfs Base image: ubuntu
Image: Add emacs
Layers Kernel cgroups, namespaces, device mapper bootfs Base image: ubuntu
Image: Add emacs Image: Add Apache
Layers Kernel cgroups, namespaces, device mapper bootfs Base image: ubuntu
Image: Add emacs Image: Add Apache Writable Container
Layers Kernel cgroups, namespaces, device mapper bootfs Base image: ubuntu
Image: Add emacs Image: Add Apache Writable Container Framework: BUILD
Containers
Containers hold the application
Containers hold the application collection of images
Containers hold the application collection of images run, stop, start,
move, delete
Containers hold the application collection of images run, stop, start,
move, delete an isolated process
Containers hold the application collection of images run, stop, start,
move, delete an isolated process Framework: RUN
Registry
Registry Registry stores images
Registry Registry stores images Layers are tar ball files with
metadata
Registry Registry stores images Layers are tar ball files with
metadata Public / Private
Registry Registry stores images Layers are tar ball files with
metadata Public / Private Community warehouse
Registry Registry stores images Layers are tar ball files with
metadata Public / Private Community warehouse Framework: SHARE
Demo: Command Line
Demo: Command Line sudo%docker%ps% sudo%docker%images
Demo: Command Line sudo%docker%pull%busybox% sudo%docker%run%busybox%/bin/echo%hello%world
Demo: Command Line sudo%docker%run%7i%7t%busybox%sh% sudo%docker%ps%7a
Demo: Command Line sudo%docker%diff%066882d91690%
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
Dockerfile A set of instructions Simliar to a Makefile or
Vagrantfile Declarative
Demo: Dockerfile
Demo: Dockerfile sudo%docker%run%77name%redis%7d%7hunderbird/redis
Demo: Dockerfile %%%%sudo%docker%run%77link%redis:cli%7i%7t%% % %%%%%%%% % % % %
ubuntu:12.10%/bin/bash
Demo: Dockerfile % % apt7get%update% % % apt7get%7y%install%redis7server% % %
service%redis7server%stop
Demo: Dockerfile % % env%|%grep%DB_% % % redis7cli%7h%$DB_PORT_6379_TCP_ADDR
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.
Demo: Trusted Builds
Trusted Builds Created a GitHub repo Subfolder = name Dockerfile
goes in there
Trusted Builds Use location if using subfolder Repo name by
purpose Tag name by purpose Create repo
Trusted Builds Check the status https://index.docker.io/ builds/ Tag name by
purpose Create repo
Docker & OpenStack www.youtube.com/ watch?v=jEcousZ6xBU
Credits http://slides.com/stevenborrelli/docker http://www.dockerbook.com/ http://www.docker.com/