+ All Categories
Home > Technology > Docker Introduction - DevOps Montreal Meetup

Docker Introduction - DevOps Montreal Meetup

Date post: 06-May-2015
Category:
Upload: colin-surprenant
View: 1,346 times
Download: 5 times
Share this document with a friend
Description:
Introduction to Docker, the open source Linux containers engine. Presentation for the Montreal DevOps meetup on Jan 6, 2014. Material, code, examples available at https://github.com/colinsurprenant/devopsmtl-docker
Popular Tags:
22
Colin Surprenant @colinsurprenant github.com/colinsurprenant/devopsmtl-docker DevOps Montréal Jan 6, 2014
Transcript
Page 1: Docker Introduction - DevOps Montreal Meetup

Colin [email protected]/colinsurprenant/devopsmtl-docker

DevOps MontréalJan 6, 2014

Page 2: Docker Introduction - DevOps Montreal Meetup

What is Docker?

Open source engine that leverage LXC and AUFS to package an application and its dependencies in a virtual container that can run on any Linux server.

Page 3: Docker Introduction - DevOps Montreal Meetup

That was easy!

Thank you!Good evening!

LXC ?!

Page 4: Docker Introduction - DevOps Montreal Meetup

What is LXC?

● LinuX Containers● Available since kernel 2.6.27● Not a new concept

○ Linux VServer (BTW created by Jacques Gélinas, a Montrealer, in early 2000)

○ OpenVZ○ FreeBSD Jails○ Solaris Zones

Page 5: Docker Introduction - DevOps Montreal Meetup

LXC

● Lightweight VM○ own process space○ own network interface○ SHARE kernel with host

● Run Linux within Linux● A container is a group of isolated processes

○ cgroups○ namespace

● “chroot on steroid”

Page 6: Docker Introduction - DevOps Montreal Meetup

LXC vs VM

Page 7: Docker Introduction - DevOps Montreal Meetup

LXC Performance?

Low overhead

● Isolated processes run straight on the host● Native CPU performance● Minimal memory overhead● Minimal network performance overhead

Page 8: Docker Introduction - DevOps Montreal Meetup

do

So then, what is Docker?

Page 9: Docker Introduction - DevOps Montreal Meetup

Docker

● Wrapper over LXC● Tools to easily build images● Images sharing

○ public repository: index.docker.io○ private repository

● Docker daemon○ manage containers & images○ HTTP API○ CLI tools

Page 10: Docker Introduction - DevOps Montreal Meetup

Containers, images & AUFS

1. RO images dependson parent images

2. Add AUFS RW layer

3. All layers + meta isa container

Page 11: Docker Introduction - DevOps Montreal Meetup

Why Docker?

● Containment and reproducibility● Encapsulate app with its dependencies● Run everywhere(™)

● Another step toward Immutable Infrastructure

Page 12: Docker Introduction - DevOps Montreal Meetup

Why Docker?

● No more missing dependencies in deployments

● Run side-by-side containers with own versions of dependencies

Page 13: Docker Introduction - DevOps Montreal Meetup

Separation of Concerns

DeveloperInside the container

● my code● my libraries● my package manager● my app● my data

DevOpsOutside the container

● logging● remote access● network configuration● monitoring

Page 14: Docker Introduction - DevOps Montreal Meetup

Architecture

Host

serv

ice

Aco

ntai

ner

App

cont

aine

r

serv

ice

Bco

ntai

ner

Doc

ker

Host

serv

ice

Aco

ntai

ner

Doc

ker

Host

serv

ice

Bco

ntai

ner

Doc

ker

Host

App

cont

aine

r

Doc

ker

Page 15: Docker Introduction - DevOps Montreal Meetup

Some Consequences

● Services discovery & interconnection logic ● “Dockerized” services management/lifecycle● Services data persistence and logging

● Path to The Twelve-Factors App

Page 16: Docker Introduction - DevOps Montreal Meetup

Requirements

● Linux kernel >= 3.8● AUFS● LXC● 64 bits

● Recommended○ Ubuntu 12.04 with upgraded kernel○ Ubuntu 13.04

Page 17: Docker Introduction - DevOps Montreal Meetup

Bro, I’m developing on a MacBook

WTF MacBook

what about Windows?

shut up!

Page 18: Docker Introduction - DevOps Montreal Meetup

OSX?

● Virtualbox + Vagrant● github.com/steeve/boot2docker● Docker OSX native client (>= 0.7.3)

Page 19: Docker Introduction - DevOps Montreal Meetup

Typical Workflow

Page 20: Docker Introduction - DevOps Montreal Meetup

Demo github.com/colinsurprenant/devopsmtl-docker

Page 21: Docker Introduction - DevOps Montreal Meetup

Further Topics

● Deployment, orchestration, discovery○ Container linking○ Ambassador Container

■ docs.docker.io/en/latest/use/ambassador_pattern_linking/○ CoreOS○ Shipyard

● PAAS○ Dokku, Deis, Cocaine, Flynn

● Security

Page 22: Docker Introduction - DevOps Montreal Meetup

The end

Thank You!

Questions?

Zzzzzzzz


Recommended