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
52
0
Share
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
120
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
"おまじない"を卒業する ボイラープレート再入門
shunsuke_1b
1
120
はじめての MagicPod生成AI機能 機能紹介から活用方法まで
magicpod
0
120
ハーネスエンジニアリングをやりすぎた話 ~そのハーネスは解体された~
gotalab555
5
1.9k
AndroidアプリとCopilot Studioの統合
nakasho
0
180
コードや知識を組み込む / Incorporate Code and Knowledge
ks91
PRO
0
180
UIライブラリに依存しすぎないReact Native設計を目指して
grandbig
0
160
ネットワーク運用を楽にするAWS DevOps Agent活用法!! / 20260421 Masaki Okuda
shift_evolve
PRO
2
240
【技術書典20】OpenFOAM(自宅で深める流体解析)流れと熱移動(2)
kamakiri1225
0
320
バイブコーディングで3倍早く⚪⚪を作ってみた
samakada
0
190
EMから幅を広げるために最近挑戦していること / Recent challenges I'm undertaking to expand my horizons beyond EM
hiro_torii
1
150
AWS Agent Registry の基礎・概要を理解する/aws-agent-registry-intro
ren8k
3
410
独断と偏見で試してみる、 シングル or マルチエージェント どっちがいいの?
shichijoyuhi
1
190
Featured
See All Featured
Believing is Seeing
oripsolob
1
120
The World Runs on Bad Software
bkeepers
PRO
72
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Producing Creativity
orderedlist
PRO
348
40k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
100
Designing for Timeless Needs
cassininazir
0
210
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The SEO identity crisis: Don't let AI make you average
varn
0
450
The Language of Interfaces
destraynor
162
26k
BBQ
matthewcrist
89
10k
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