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
Docker; The Shipping - Andreas Tiefenthaler
Search
Kod.io Linz
March 01, 2014
Programming
160
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Docker; The Shipping - Andreas Tiefenthaler
Kod.io Linz
March 01, 2014
More Decks by Kod.io Linz
See All by Kod.io Linz
Kod.io Linz closing notes - Floor Drees
kodio_linz
0
200
Make yours and other people's life easier! Do support! - Mike Adolphs
kodio_linz
0
140
Objective-C for Rubyists - Mikael Konutgan
kodio_linz
0
180
How to become a better developer - Markus Prinz
kodio_linz
1
130
10 things I didn’t know about HTML, CSS, and JavaScript - Mathias Bynens
kodio_linz
5
360
The Ultimate Python Database Toolkit: SQLAlchemy - Muhammet Sena Aydın
kodio_linz
1
320
How to Get More Women in Tech in 5 Steps - Anika Lindtner
kodio_linz
0
710
RubyMotion’s Secret Sauce - Joshua Ballenco
kodio_linz
0
310
Fly, you tools - Piotr Szotkowski
kodio_linz
1
290
Other Decks in Programming
See All in Programming
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
220
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
130
Vite+ Unified Toolchain for the Web
naokihaba
0
370
Performance Engineering for Everyone
elenatanasoiu
0
240
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
980
Agentic UI
manfredsteyer
PRO
0
200
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
270
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
220
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.7k
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
350
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.1k
これからAgentCoreを触る方へトレンドはGatewayです
har1101
5
400
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Accessibility Awareness
sabderemane
1
150
Git: the NoSQL Database
bkeepers
PRO
432
67k
Writing Fast Ruby
sferik
630
63k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
570
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
450
Between Models and Reality
mayunak
4
360
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
240
Side Projects
sachag
455
43k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Transcript
intentionally left about: blank
Andreas Tiefenthaler Twitter/GitHub: @pxlpnk contentful.com
the shipping
What is this about? • Docker in theory • technology
• tiny live demo • that to use it for • that to not use it for • some code • bigger live demo
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. written in go-lang
Main Features
Can encapsulate any payload and its dependencies
Lightweight, virtually no performance or start-up penalty, quick to move
and manipulate
Separation of duties code vs infrastructure
Resource, network, and content isolation. Avoids dependency hell
Containers vs VMs
Container? • Uses Linux Containers - LXC • cgroups •
Linux Kernel itself
Basic Functions • build • modify • publish • search
• run containers
First demo: docker run ubuntu /bin/echo hello world!
Use cases
Automating the packaging and deployment of applications Creation of lightweight,
private PAAS environments Automated testing and continuous integration/deployment Deploying and scaling web apps, databases and backend services
Who uses docker?
https://flynn.io/
Some Code
Dockerfiles
FROM ubuntu:12.10! RUN apt-get -y install htop! ENTRYPOINT ["/bin/bash"]! !
$docker build -t container .
The APP Demo
The APP • Sinatra Webservice Container • Sidekiq Worker Container
• Redis Container
Webapp require_relative 'config.rb'! require_relative 'worker'! ! require 'sinatra'! ! set
:environment, :production unless ENV['development']! ! get '/:task/:cost' do |task, cost|! Worker.perform_async(task, cost)! end!
Worker require_relative 'config.rb'! require 'sidekiq'! ! class Worker! include Sidekiq::Worker!
! def perform(task = 'HardTask', cost = 2)! puts "Working on #{task} for: #{cost}"! sleep cost.to_i! end! end!
Config DB_URL = ENV['DB_PORT_6379_TCP_ADDR']! DB_PORT = 6379! DB_NO = 0!
DB_NAMESPACE='catcher'! ! Sidekiq.configure_client do |config|! config.redis = { namespace: DB_NAMESPACE, size: 1,! url: "redis://#{DB_URL}:#{DB_PORT}/#{DB_NO}" }! end! ! Sidekiq.configure_server do |config|! config.redis = { namespace: DB_NAMESPACE, ! url: "redis://#{DB_URL}:#{DB_PORT}/#{DB_NO}" }! end!
DEMO
Cons • Not production ready • Rapidly changing • Should
not run Database within it • Does not give you Security Superpowers (http://blog.docker.io/2013/08/containers-docker-how-secure-are-they/)
v.0.8 • BTRFS support • OS X support • one
release per month • new builder features (Dockerfiles) • general faster faster
None
None
@langziehohr
Danke, thank you, dankjewel Questions? Source: https://github.com/pxlpnk/docker Docker: https://www.docker.io/ Diagrams
taken from docker.io Slides: http://an-ti.eu/talks.html kod-io-2014 10% off contentful.com