SlideShare a Scribd company logo
Docker Intro
Puja Abbassi
@puja108
http://giantswarm.io
Simple microservice infrastructure,
built for developers.
Currently in free Alpha
Looking for feedback
http://giantswarm.io/
W
e’re hiring
Agenda
1) Docker Intro
● Why are we so excited?
● What is Docker?
● Getting started
2) Docker Microservices
Docker is an open-source
project to easily create
lightweight, portable, self-
sufficient containers from any
application.”
“ Linux
Why are we so
excited?
Installation
My Mac Timo’s
Linux
Test Staging Cloud VM Bare Metal
Rails Web
Frontend
? ? ? ? ? ?
Node.js
API
? ? ? ? ? ?
Background
jobs
? ? ? ? ? ?
MySQL ? ? ? ? ? ?
Distributed
DB
? ? ? ? ? ?
Message
Queue
? ? ? ? ? ?
Reusable Containers
My Mac Timo’s
Linux
Test Staging Cloud VM Bare Metal
Rails Web
Frontend
Node.js
API
Background
jobs
MySQL
Distributed
DB
Message
Queue
Speed
Ships
within ...
Manual
deployment
takes ...
Automated
deployment
takes ...
Boots in ...
Bare
metal
Days Hours Minutes Minutes
Virtual
machine
Minutes Minutes Seconds < Minute
Container Seconds Minutes Seconds Seconds
Dev ⇔ DevOps - Separation of
Concerns
Dev: Inside the
container
● my code
● my libraries
● my package
manager
● my app
● my data
Ops: Outside the
container
● Logging
● Remote Access
● Network
Configuration
● Monitoring
Who’s Using Containers?
What is Docker?
Based on existing technologies
● Namespaces
> Varying views on the system
> to provide isolated environments
> PID, NET, IPC, MNT, UTS, User
● CGroups
> control resources for a group of processes
> like CPU time, Memory, Network bandwidth, etc.
● Layered FS
● (LXC)
Layered FS
Base Image
Image
bootfs
Image
Writable Container Application Code
NodeJS
Nginx
Ubuntu
Cgroups, Namespaces,
Device Mapper, Kernel
But {insert some great UNIX
here} has had this for years.”“
Docker History
● Jan 2013: Initial commit
● September 2013: Redhat announces
collaboration
● June 2014: Google announces engagement
● August 2014: VMWare announces Docker support
● February 2015: Microsoft announces Docker
support
● April 2015: Docker raises $95 Million
● June 2015: Open Container Project announced
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Docker is awesome
and here to stay.
Getting started
Installation
● Mac, Windows:
Boot2Docker
● Ubuntu:
$ sudo apt-get install docker.io
Run Containers
# run a command
$ docker run busybox echo hello
# run an interactive shell
$ docker run -i -t busybox /bin/sh
# run a Redis cache
$ docker run -d redis
A Node Script
// server.js
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello Worldn');
}).listen(8080);
console.log('Server running');
Simple Dockerfile
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y nodejs
ADD server.js .
EXPOSE 8080
CMD ["/usr/bin/nodejs", "/server.js"]
Build, Push, and Run
# build the image
$ docker build -t puja108/node .
# push it to the registry
$ docker push puja108/node
# run it (on any host)
$ docker run -d puja108/node
dockerbook.com
Docker in
Development
● Vagrant
● rbenv
● nodeenv
● virtualenv
● Laptop full of build tools and servers
Your current setup?
● Contains Build Tools
○ Can also be a separate container
● One (or more) container(s) for each stack
○ Use Docker Compose
● Runs the same regardless on which host or
in which environment
● Lightweight
○ Developer can actually have several environments
open directly on her laptop
Dev Containers
Docker Build
Chain
Jenkins - Docker Hub Integration
Jenkins - Docker Hub Integration
Docker Enables
new Architecture
Patterns
Patterns for the Cloud
Microservices
Responsive Manifesto
● Microservice Architectures
> Simple focussed services
> Highly decoupled
> Communicate over lightweight mechanisms
> HTTP APIs & Message Queues
> Polyglot (Language, Framework, Data Store)
> Built to fail
● Immutable Infrastructures
> Disposable components
> Make your state explicit
> Configure at run-time
The Next Steps in Cloud Architecture
Containers vs. VMs
Container
● Lightweight layers
above a shared
kernel
● Single service or
process
● New but promising
technology
● Enable #GIFEE
VM
● Complete (heavy)
Virtual System
● Application(s) with
several components
● Tried and trusted
Technology
Should I start with
Docker?
Yes!
Containers are only 1% of your
problem.”“ Kelsey Hightower,
CoreOS
Thanks for listening!
Reach out:
Puja Abbassi
@puja108
@giantswarm
Namespaces
The pid namespace: Used for process isolation (PID:
Process ID).
The net namespace: Used for managing network
interfaces (NET: Networking).
The ipc namespace: Used for managing access to IPC
resources (IPC: InterProcess Communication).
The mnt namespace: Used for managing mount-points
(MNT: Mount).
The uts namespace: Used for isolating kernel and version
identifiers. (UTS: Unix Timesharing System).
CGroups
Control group of processes.
Share available hardware resources.
Set up limits and constraints.
E.g. limiting the memory available to a
specific container.

More Related Content

What's hot (20)

PDF
How we dockerized a startup? #meetup #docker
Jonathan Martin
 
PPTX
Deploying windows containers with kubernetes
Ben Hall
 
PDF
Docker Introduction
Robert Reiz
 
PDF
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
dotCloud
 
PDF
Dev with Docker WCPHX 2019
Maura Teal
 
PDF
Docker Birthday #3 - Intro to Docker Slides
Docker, Inc.
 
PDF
Introduction of Docker and Docker Compose
Dr. Ketan Parmar
 
PDF
Docker, Kubernetes, and Google Cloud
Samuel Chow
 
PDF
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
dotCloud
 
PPTX
Containers without docker
Ben Hall
 
PPTX
Intro to Docker and clustering with Rancher from scratch
John Culviner
 
PDF
Getting started with docker
JEMLI Fathi
 
PDF
DCSF19 How Docker Simplifies Kubernetes for the Masses
Docker, Inc.
 
PPTX
LinuxKit: the first five months by Justin Cormack & Riyaz Faizullabhoy (Docker)
Docker, Inc.
 
PPTX
John Engates Keynote at Dockercon 14
dotCloud
 
ODP
Docker engine - Indroduc
Al Gifari
 
PDF
Microservices using relocatable Docker containers
Mauricio Garavaglia
 
PDF
Introduction to Containers - SQL Server and Docker
Chris Taylor
 
PDF
Docker on Windows
Stefan Scherer
 
PPTX
The state of containerd
Docker, Inc.
 
How we dockerized a startup? #meetup #docker
Jonathan Martin
 
Deploying windows containers with kubernetes
Ben Hall
 
Docker Introduction
Robert Reiz
 
Introduction to Docker at SF Peninsula Software Development Meetup @Guidewire
dotCloud
 
Dev with Docker WCPHX 2019
Maura Teal
 
Docker Birthday #3 - Intro to Docker Slides
Docker, Inc.
 
Introduction of Docker and Docker Compose
Dr. Ketan Parmar
 
Docker, Kubernetes, and Google Cloud
Samuel Chow
 
Introduction to Docker and all things containers, Docker Meetup at RelateIQ
dotCloud
 
Containers without docker
Ben Hall
 
Intro to Docker and clustering with Rancher from scratch
John Culviner
 
Getting started with docker
JEMLI Fathi
 
DCSF19 How Docker Simplifies Kubernetes for the Masses
Docker, Inc.
 
LinuxKit: the first five months by Justin Cormack & Riyaz Faizullabhoy (Docker)
Docker, Inc.
 
John Engates Keynote at Dockercon 14
dotCloud
 
Docker engine - Indroduc
Al Gifari
 
Microservices using relocatable Docker containers
Mauricio Garavaglia
 
Introduction to Containers - SQL Server and Docker
Chris Taylor
 
Docker on Windows
Stefan Scherer
 
The state of containerd
Docker, Inc.
 

Viewers also liked (20)

PPTX
Service Orchestrierung mit Apache Mesos
Ralf Ernst
 
PPT
TransitioningToMicroServonDocker_MS
Lana Kalashnyk
 
PDF
How to Build Cloud-based Microservice Environments with Docker and VoltDB
VoltDB
 
PPTX
Core os dna_automacon
Patrick Galbraith
 
PDF
MicroService and MicroContainer with Apache Camel
Charles Moulliard
 
PPTX
Core os dna_oscon
Patrick Galbraith
 
PDF
CoreOS automated MySQL Cluster Failover using Galera Cluster
Yazz Atlas
 
PPTX
Тарас Кирилюк — Docker basics. How-to for Drupal developers
LEDC 2016
 
PPTX
2015 03-11_todd-fritz_devnexus_2015
Todd Fritz
 
PDF
Dockerize node.js application
Seokjun Kim
 
PPTX
Galera on kubernetes_no_video
Patrick Galbraith
 
PDF
Import golang; struct microservice - Codemotion Rome 2015
Giorgio Cefaro
 
PDF
Full lifecycle of a microservice
Luigi Bennardis
 
PPTX
A Dive Into Containers and Docker
Matthew Farina
 
PDF
Microservices architecture examples
Channy Yun
 
PPTX
Write microservice in golang
Bo-Yi Wu
 
PPTX
HP Advanced Technology Group: Docker and Ansible
Patrick Galbraith
 
PDF
Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Chris Richardson
 
PDF
Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)
Chris Richardson
 
PDF
Service discovery in a microservice architecture using consul
Jos Dirksen
 
Service Orchestrierung mit Apache Mesos
Ralf Ernst
 
TransitioningToMicroServonDocker_MS
Lana Kalashnyk
 
How to Build Cloud-based Microservice Environments with Docker and VoltDB
VoltDB
 
Core os dna_automacon
Patrick Galbraith
 
MicroService and MicroContainer with Apache Camel
Charles Moulliard
 
Core os dna_oscon
Patrick Galbraith
 
CoreOS automated MySQL Cluster Failover using Galera Cluster
Yazz Atlas
 
Тарас Кирилюк — Docker basics. How-to for Drupal developers
LEDC 2016
 
2015 03-11_todd-fritz_devnexus_2015
Todd Fritz
 
Dockerize node.js application
Seokjun Kim
 
Galera on kubernetes_no_video
Patrick Galbraith
 
Import golang; struct microservice - Codemotion Rome 2015
Giorgio Cefaro
 
Full lifecycle of a microservice
Luigi Bennardis
 
A Dive Into Containers and Docker
Matthew Farina
 
Microservices architecture examples
Channy Yun
 
Write microservice in golang
Bo-Yi Wu
 
HP Advanced Technology Group: Docker and Ansible
Patrick Galbraith
 
Building and deploying microservices with event sourcing, CQRS and Docker (QC...
Chris Richardson
 
Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)
Chris Richardson
 
Service discovery in a microservice architecture using consul
Jos Dirksen
 
Ad

Similar to Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main (20)

PDF
Introduction to Docker
Aditya Konarde
 
PPTX
Intro to Docker November 2013
Docker, Inc.
 
PPTX
Intro Docker october 2013
dotCloud
 
PPTX
Docker introduction
dotCloud
 
PPTX
ma-formation-en-Docker-jlklk,nknkjn.pptx
imenhamada17
 
PPTX
Intro to Docker October 2013
Docker, Inc.
 
PDF
Docker-v3.pdf
Bruno Cornec
 
PDF
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Codemotion
 
PDF
Cloud Native Computing - Part III - Containers
Linjith Kunnon
 
PDF
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
PDF
Docker handons-workshop-for-charity
Yusuf Hadiwinata Sutandar
 
PPTX
Java developer intro to environment management with vagrant puppet and docker
Getting value from IoT, Integration and Data Analytics
 
PPTX
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
PPTX
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
PPTX
Cont0519
Samuel Dratwa
 
PDF
Docker introduction for Carbon IT
yannick grenzinger
 
PDF
Accelerate your software development with Docker
Andrey Hristov
 
PPTX
Accelerate your development with Docker
Andrey Hristov
 
PDF
Docker presentation | Paris Docker Meetup
dotCloud
 
PDF
Victor Vieux at Docker Paris Meetup #1
Docker, Inc.
 
Introduction to Docker
Aditya Konarde
 
Intro to Docker November 2013
Docker, Inc.
 
Intro Docker october 2013
dotCloud
 
Docker introduction
dotCloud
 
ma-formation-en-Docker-jlklk,nknkjn.pptx
imenhamada17
 
Intro to Docker October 2013
Docker, Inc.
 
Docker-v3.pdf
Bruno Cornec
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Codemotion
 
Cloud Native Computing - Part III - Containers
Linjith Kunnon
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
Docker handons-workshop-for-charity
Yusuf Hadiwinata Sutandar
 
Java developer intro to environment management with vagrant puppet and docker
Getting value from IoT, Integration and Data Analytics
 
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
Cont0519
Samuel Dratwa
 
Docker introduction for Carbon IT
yannick grenzinger
 
Accelerate your software development with Docker
Andrey Hristov
 
Accelerate your development with Docker
Andrey Hristov
 
Docker presentation | Paris Docker Meetup
dotCloud
 
Victor Vieux at Docker Paris Meetup #1
Docker, Inc.
 
Ad

Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main

  • 2. Simple microservice infrastructure, built for developers. Currently in free Alpha Looking for feedback http://giantswarm.io/ W e’re hiring
  • 3. Agenda 1) Docker Intro ● Why are we so excited? ● What is Docker? ● Getting started 2) Docker Microservices
  • 4. Docker is an open-source project to easily create lightweight, portable, self- sufficient containers from any application.” “ Linux
  • 5. Why are we so excited?
  • 6. Installation My Mac Timo’s Linux Test Staging Cloud VM Bare Metal Rails Web Frontend ? ? ? ? ? ? Node.js API ? ? ? ? ? ? Background jobs ? ? ? ? ? ? MySQL ? ? ? ? ? ? Distributed DB ? ? ? ? ? ? Message Queue ? ? ? ? ? ?
  • 7. Reusable Containers My Mac Timo’s Linux Test Staging Cloud VM Bare Metal Rails Web Frontend Node.js API Background jobs MySQL Distributed DB Message Queue
  • 8. Speed Ships within ... Manual deployment takes ... Automated deployment takes ... Boots in ... Bare metal Days Hours Minutes Minutes Virtual machine Minutes Minutes Seconds < Minute Container Seconds Minutes Seconds Seconds
  • 9. Dev ⇔ DevOps - Separation of Concerns Dev: Inside the container ● my code ● my libraries ● my package manager ● my app ● my data Ops: Outside the container ● Logging ● Remote Access ● Network Configuration ● Monitoring
  • 12. Based on existing technologies ● Namespaces > Varying views on the system > to provide isolated environments > PID, NET, IPC, MNT, UTS, User ● CGroups > control resources for a group of processes > like CPU time, Memory, Network bandwidth, etc. ● Layered FS ● (LXC)
  • 13. Layered FS Base Image Image bootfs Image Writable Container Application Code NodeJS Nginx Ubuntu Cgroups, Namespaces, Device Mapper, Kernel
  • 14. But {insert some great UNIX here} has had this for years.”“
  • 15. Docker History ● Jan 2013: Initial commit ● September 2013: Redhat announces collaboration ● June 2014: Google announces engagement ● August 2014: VMWare announces Docker support ● February 2015: Microsoft announces Docker support ● April 2015: Docker raises $95 Million ● June 2015: Open Container Project announced
  • 18. Docker is awesome and here to stay.
  • 20. Installation ● Mac, Windows: Boot2Docker ● Ubuntu: $ sudo apt-get install docker.io
  • 21. Run Containers # run a command $ docker run busybox echo hello # run an interactive shell $ docker run -i -t busybox /bin/sh # run a Redis cache $ docker run -d redis
  • 22. A Node Script // server.js var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello Worldn'); }).listen(8080); console.log('Server running');
  • 23. Simple Dockerfile FROM ubuntu:latest RUN apt-get update RUN apt-get install -y nodejs ADD server.js . EXPOSE 8080 CMD ["/usr/bin/nodejs", "/server.js"]
  • 24. Build, Push, and Run # build the image $ docker build -t puja108/node . # push it to the registry $ docker push puja108/node # run it (on any host) $ docker run -d puja108/node
  • 27. ● Vagrant ● rbenv ● nodeenv ● virtualenv ● Laptop full of build tools and servers Your current setup?
  • 28. ● Contains Build Tools ○ Can also be a separate container ● One (or more) container(s) for each stack ○ Use Docker Compose ● Runs the same regardless on which host or in which environment ● Lightweight ○ Developer can actually have several environments open directly on her laptop Dev Containers
  • 30. Jenkins - Docker Hub Integration Jenkins - Docker Hub Integration
  • 32. Patterns for the Cloud Microservices Responsive Manifesto
  • 33. ● Microservice Architectures > Simple focussed services > Highly decoupled > Communicate over lightweight mechanisms > HTTP APIs & Message Queues > Polyglot (Language, Framework, Data Store) > Built to fail ● Immutable Infrastructures > Disposable components > Make your state explicit > Configure at run-time The Next Steps in Cloud Architecture
  • 34. Containers vs. VMs Container ● Lightweight layers above a shared kernel ● Single service or process ● New but promising technology ● Enable #GIFEE VM ● Complete (heavy) Virtual System ● Application(s) with several components ● Tried and trusted Technology
  • 35. Should I start with Docker?
  • 36. Yes!
  • 37. Containers are only 1% of your problem.”“ Kelsey Hightower, CoreOS
  • 38. Thanks for listening! Reach out: Puja Abbassi @puja108 @giantswarm
  • 39. Namespaces The pid namespace: Used for process isolation (PID: Process ID). The net namespace: Used for managing network interfaces (NET: Networking). The ipc namespace: Used for managing access to IPC resources (IPC: InterProcess Communication). The mnt namespace: Used for managing mount-points (MNT: Mount). The uts namespace: Used for isolating kernel and version identifiers. (UTS: Unix Timesharing System).
  • 40. CGroups Control group of processes. Share available hardware resources. Set up limits and constraints. E.g. limiting the memory available to a specific container.