Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS
-
Upload
phil-reither -
Category
Technology
-
view
257 -
download
2
Transcript of Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS
and use DOCKER toBuild, Ship and Run any App, Anywhere
FIRE YOUR SYSADMIN
SCOTLANDJS 2015 — PHIL REITHER
Django AppDatabaseFront-End
WorkersEmail
WordpressAdmin CRM
DEV DEV II LIVE STAGING QA INTERN
Django AppDatabaseFront-End
WorkersEmail
WordpressAdmin CRM
DEV DEV II LIVE STAGING QA INTERN
it’s A c
ompan
y!
what’s in
the box?
code, runtime,
libs, bins
Why
should I
care?
• It’s the same everywhere. • Separation of concerns. • Minimal setup-up costs. • Versioned environment.
ship the
entire
environment
Virtual
machine
DOCKER
}Host OS
Hardware
Docker
Bins & Libs Bins &Libs
AppB
AppA’
AppA
ContainerVi
rtua
l Mac
hine{
AppA
Bins &Libs
OS
Hypervisor
Host OS
Hardware
OS
Bins &Libs
AppA’
OS
Bins &Libs
AppB
~$#ps#&A#|#wc#&l#235#
~$#docker#run#ubuntu#ps#&A#PID##TTY##TIME######CMD###1##?####00:00:00##ps
Counting Processes
LXC
let’s
do this!
~$#docker#search#node#NAME##DESCRIPTION####################################STARS##OFFICIAL#node##Node.js#is#a#JavaScript&based#platform#for...##685####[OK]#iojs##io.js#is#an#npm#compatible#platform#origin...##65#####[OK]##...#
~$#docker#run#node#Unable#to#find#image#'node:latest'#locally#latest:#Pulling#from#node#29809ed33dfd:#Pulling#fs#layer#...
Run an image
~$#docker#run#&t#&i#ubuntu#/bin/bash#root:##
root:##apt&get#install#&y#git#Reading#package#lists...#Done#Building#dependency#tree#Reading#state#information...#Done#...
Install things
~$#docker#run#&v#~/Desktop/app:/code#&t#&i#node#root:##
root:##ls#/code#[files#from#host#/src/app]
Share folders
~$#docker#ps#ID############IMAGE##########COMMAND######NAME#e7bf8f45d7be##ubuntu:latest##"/bin/bash"##sick_euclid#
~$#docker#commit#sick_euclid#phil/new_image#cd9bd07d78733cb5a53fb1f41b5d2c99039fbd79a7526ce57410ca6df1e97e2b#
~$#docker#images#REPOSITORY######TAG######IMAGE#ID######VIRTUAL#SIZE#phil/new_image##latest###cd9bd07d7873##188.7#MB
Save images
too
easy!
docker-compose.yml
settings.py
Dockerfile
/code
Container “django”
postgres
Container “db”
~/Desktop/code
db:###image:#postgres#
django:###build:#.###command:#python#manage.py#runserver#0.0.0.0:8000###volumes:#####&#.:/code###ports:#####&#"8000:8000"###links:#####&#db
docker-compose.yml - [host]
~$#docker&compose#up#Attaching#to#django_db_1,#django_web_1#db_1##|#LOG:##database#system#is#ready#to#accept#connections#web_1#|#Django#version#1.8.1,#using#settings#‘local.settings'#...
Install things
FROM#python:2.7#ENV#PYTHONUNBUFFERED#1#RUN#mkdir#/code#WORKDIR#/code#ADD#requirements.txt#/code/#RUN#pip#install#&r#requirements.txt#ADD#.#/code/#
Dockerfile - [container “django”]
...#DATABASES#=#{#####'default':#{#
####}#}#...
settings.py - [container “django”]
########'ENGINE':#'django.db.backends.postgresql_psycopg2',#########'NAME':#'postgres',#########'USER':#'postgres',#########'PORT':#5432,#########'HOST':#'db',#
docker-compose.yml
settings.py
Dockerfile
/code
Container “django”
postgres
Container “db”
~/Desktop/code
Docker
cheat
sheet
http://tinyurl.com/scotlandjsdocker