Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

33
and use DOCKER to Build, Ship and Run any App, Anywhere FIRE YOUR SYSADMIN SCOTLANDJS 2015 — PHIL REITHER

Transcript of Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

Page 1: 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

Page 2: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS
Page 3: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS
Page 4: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS
Page 5: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

Django AppDatabaseFront-End

WorkersEmail

WordpressAdmin CRM

DEV DEV II LIVE STAGING QA INTERN

Page 6: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

Django AppDatabaseFront-End

WorkersEmail

WordpressAdmin CRM

DEV DEV II LIVE STAGING QA INTERN

Page 7: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS
Page 8: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS
Page 9: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

it’s A c

ompan

y!

Page 10: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

what’s in

the box?

code, runtime,

libs, bins

Page 11: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

Why

should I

care?

Page 12: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

• It’s the same everywhere. • Separation of concerns. • Minimal setup-up costs. • Versioned environment.

ship the

entire

environment

Page 13: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

Virtual

machine

DOCKER

Page 14: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

}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

Page 15: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

~$#ps#&A#|#wc#&l#235#

~$#docker#run#ubuntu#ps#&A#PID##TTY##TIME######CMD###1##?####00:00:00##ps

Counting Processes

Page 16: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

LXC

Page 17: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

let’s

do this!

Page 18: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS
Page 19: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS
Page 20: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

~$#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

Page 21: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

~$#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

Page 22: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

~$#docker#run#&v#~/Desktop/app:/code#&t#&i#node#root:##

root:##ls#/code#[files#from#host#/src/app]

Share folders

Page 23: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

~$#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

Page 24: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS
Page 25: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

too

easy!

Page 26: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

docker-compose.yml

settings.py

Dockerfile

/code

Container “django”

postgres

Container “db”

~/Desktop/code

Page 27: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

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]

Page 28: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

~$#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

Page 29: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

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”]

Page 30: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

...#DATABASES#=#{#####'default':#{#

####}#}#...

settings.py - [container “django”]

########'ENGINE':#'django.db.backends.postgresql_psycopg2',#########'NAME':#'postgres',#########'USER':#'postgres',#########'PORT':#5432,#########'HOST':#'db',#

Page 31: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

docker-compose.yml

settings.py

Dockerfile

/code

Container “django”

postgres

Container “db”

~/Desktop/code

Page 32: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS

Docker

cheat

sheet

http://tinyurl.com/scotlandjsdocker

Page 33: Docker: Fire your Sysadmin and use Docker to build, ship and run any app, anywhere - ScotlandJS