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
Introduction to Docker
Search
John Downey
February 06, 2014
Programming
160
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to Docker
Given at the first Chicago Docker meetup
John Downey
February 06, 2014
Transcript
22 slides
John Downey | @jtdowney
None
None
Laptop CI QA Staging Prod Rails code ? ? ?
? ? PostgreSQL ? ? ? ? ? RabbitMQ ? ? ? ? ? libxyz ? ? ? ? ?
http://www.flickr.com/photos/neonman/1438473495/
LXC Linux Containers
LXC: LINUX CONTAINERS • Linux host (kernel >= 2.6.29) •
Linux container (guest) • Must match host architecture • No need to match kernel/distro
DOCKER • Builds on LXC • Server (host) mode requires
Linux and LXC • Recommend kernel >= 3.8 • Client mode runs almost anywhere (Linux/OS X)
WHAT DOCKER ADDS • Images • Layers • Tags •
Repository • Create and share images
DOCKER COMMAND • Written in Go • Open source •
Manages containers and images • Provides HTTP API • Built in CLI client uses API
ADVANTAGES OVER A VM • Package a run-time environment •
Runnable on any linux host • Keeps things isolated and ephemeral • Fast and simple
IMAGES
IMAGES VS CONTAINERS • Images are a template • File
system • Metadata (ports to expose, command to run) • Containers are what is running
IMAGE LAYERS • Images are built up from layers •
Each layer is read-only filesystem • Top layer is a new read-write layer
None
IMAGE HIERARCHY • Form a directed tree • Each image
can specify a parent image • Starts with the parents layers below its own
Ubuntu App A B C DB A B
WAYS TO MAKE IMAGES • Commit a running container (docker
commit) • Dockerfile (docker build) • Import a tarball (docker import)
DOCKERFILE • FROM - What my parent image is •
RUN - Perform a command to prepare the image • ADD - Add a file to the image • EXPOSE - Allow access to a specified port • ENV - Set an environment variable • CMD - Default command to run on container creation
FROM wheezy-base ! ENV DEBIAN_FRONTEND noninteractive ! RUN apt-get install
-y ruby1.9.1 ruby1.9.1-dev RUN apt-get install -y build-essential RUN apt-get install -y libpq-dev RUN apt-get install -y libxml2-dev libxslt-dev RUN apt-get install -y libcurl4-openssl-dev RUN gem install bundler ! EXPOSE 3000 ! WORKDIR /gateway ADD . /gateway/ RUN bundle install ! CMD ["bundle", "exec", "rails", "server", "thin"]
REPOSITORY / INDEX
None
More Decks by John Downey
See All by John Downey
Cryptography Pitfalls at CactusCon 2019
jtdowney
0
210
Intro to Cybersecurity Workshop
jtdowney
0
170
Cryptography Pitfalls at BsidesMSP 2017
jtdowney
0
230
Cryptography Pitfalls at THOTCON 0x8
jtdowney
0
230
Cryptography Pitfalls at ConFoo Montreal 2017
jtdowney
1
400
Cryptography Pitfalls at BSidesPhilly 2016
jtdowney
0
180
Cryptography Pitfalls at LASCON 2016
jtdowney
0
240
Debugging TLS/SSL at DevOps Days Detroit 2016
jtdowney
1
330
Debugging TLS/SSL at DevOpsDays Boston
jtdowney
1
420
Other Decks in Programming
See All in Programming
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
320
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
230
ローカルLLMの基本と近況 2611 / Local LLM basics and recent situation 2611
kishida
0
150
Seven New Principles of Software Engineering
yegor256
0
480
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.3k
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
300
LLM 101
dalinaum
0
480
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
380
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
200
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
ビジネスロジックを堅牢に~Scala 3のドメインプリミティブ~
j5ik2o
0
110
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.8k
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
380
Ruling the World: When Life Gets Gamed
codingconduct
0
440
Visualization
eitanlees
153
17k
The Curse of the Amulet
leimatthew05
4
17k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3.1k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Producing Creativity
orderedlist
PRO
348
41k
A Soul's Torment
seathinner
9
3.9k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.3k
The Invisible Side of Design
smashingmag
301
52k