Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NLUUG 2014: Zero to Docker in 20s
Search
Steeve Morin
May 15, 2014
Technology
57
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NLUUG 2014: Zero to Docker in 20s
Steeve Morin
May 15, 2014
More Decks by Steeve Morin
See All by Steeve Morin
BazelCon 2019 - Bazel & Kubernetes: Develop like it’s production
steeve
0
130
boot2docker: Zero to Docker in 20s
steeve
2
430
boot2docker at the Paris Docker Meetup
steeve
7
3.6k
XBMCtorrent: Torrent Streaming for XBMC - Paris Tech Talks
steeve
0
1.2k
Other Decks in Technology
See All in Technology
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
3
2.2k
いかに伝えるか 〜新卒エンジニアの教育のための、ライトノベル活用の一例
ikedon
1
190
Jetpack Compose で挑む新聞紙面UI ─ 複合ジェスチャー・ポリゴン記事領域・適応的ページ構成という3つの壁/droidkaigi2026
nikkei_engineer_recruiting
0
200
Sony-DroidKaigi2026
sony
1
320
振り返りこそエンジニアの本領
negima
0
290
DGX Sparkを2台使って いろいろ動かす話
sonoda_mj
1
130
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
170
AIで仕事のやり方を変える
matsu7874
1
390
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
300
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.2k
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
0
400
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
230
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Between Models and Reality
mayunak
4
450
Mobile First: as difficult as doing things right
swwweet
225
10k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
How to Ace a Technical Interview
jacobian
281
24k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
500
Mind Mapping
helmedeiros
PRO
1
350
The untapped power of vector embeddings
frankvandijk
2
1.9k
Transcript
BOOT2DOCKER Zero to Docker in 20s Steeve Morin @steeve
‘SUP • @steeve • independent, always for hire • <LANGUAGE>-ista
• wingsuiter (because fuck yeah)
None
–Every developer ever “Works on my machine.”
None
It’s a pretty big problem.
THE MATRIX FROM HELL My Machine Your Machine QA Staging
Prod Web App ? ? ? ? ? Backoffice ? ? ? ? ? Queue ? ? ? ? ? Workers ? ? ? ? ? DB ? ? ? ? ?
THE MATRIX FROM HELL ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
THE SHIPPING CONTAINER
WHY IT WORKS • Separation of concerns • Goods are
packed as containers • Shipping companies only care about shipping containers • Everything built around containers
THE MATRIX FROM HELL
LINUX CONTAINERS • Since Linux 3.0 • But only use
from 3.8 • Shared kernel • Isolated processes • Startup is fast (100ms fast) • Very light
DOCKER IS CONTAINERS FOR SOFTWARE • Lightweight virtualization • Leverages
Linux Containers • No performance hit (unlike VMs *wink wink*) • Devs supply docker images • Ops deploy and run docker images
THE MATRIX FROM HELL My Machine Your Machine QA Staging
Prod Web App Backoffice Queue Workers DB
FOR DEVS • My code • My libraries • My
dependencies • My linux distribution • My data
FOR OPS • Logging • Network access • Monitoring •
Permissions, throttling • CPU, RAM, DISK
WORKFLOW • git like (commit, tag, push, pull) • Run
image in container • Modify container as needed • Commit container as new image • Tag complete image • Push image when ready
YOUR FIRST CONTAINER $ docker run -i -t ubuntu bash
/# apt-get -y update /# apt-get install -y python /# wget http://srv/myapp.zip /# unzip myapp.zip $ docker commit <container_id> myapp $ docker tag myapp steeve/myapp $ docker push steeve/myapp
THE DOCKERFILE • A standard way to build Docker images
• Very simple syntax and limited scope • It’s simply run/commit ! • The whole environment in one file
THE DOCKERFILE $ cat Dockerfile FROM debian:jessie ! RUN apt-get
-y update RUN apt-get install -y python ! ADD myapp / ! EXPOSE 8080 CMD ["python", “/myapp/app.py"] $ docker build -t steeve/myapp $ docker run steeve/myapp
THE DOCKER REGISTRY • Repository of public Docker images •
http://index.docker.io • docker push to the registry • Can run registry locally • Registry is simply a Docker image!
BOOT2DOCKER
–Steeve Morin “When you think about it, the host system
is redundant to the Docker image… Right?”
TINY CORE LINUX • 9mb ISO (!) • Runs from
RAM • Boots in 3s • v4.7 at the time (5.3 now) • Binary repository • Pretty big community
DOCKER ON TCL • First try, July 2013 • Linux
Kernel 3.0 x86 without AUFS? • Custom Linux 3.10 with AUFS • Missing critical packages? • Cross compilation FTW • docker version works!!!
DOCKER ON TCL $ docker run -i -t busybox /bin/sh
lxc-start: Invalid argument - pivot_root syscall failed
DOCKER ON TCL: PART DEUX • December 3rd, 2013 •
Docker Global Hack Day • Better custom Kernel • 3.10/AUFS/CGROUPS… • Custom LXC patch
DOCKER ON TCL $ docker run -i -t busybox /bin/sh
#/
• Based on Tiny Core Linux 5.1 • 25mb ISO,
boots in 5-10s • Runs from RAM, read-only • updates are easy • Disk persistance • Built with Docker • Yes, boot2docker builds with boot2docker
0.9.1 (just released)
None
130 000 downloads
$ boot2docker-cli init $ boot2docker-cli up $ export DOCKER_HOST=localhost $
docker run -i -t busybox sh #/ boot2docker-cli + boot2docker OS + Docker OSX client = <3
None
None
None
THANK YOU github.com/boot2docker/boot2docker @steeve