SlideShare a Scribd company logo
INTRODUCTION TO
by Tom Verelst
Automation & Tooling Competence Center
© 2016 JWorks
BEFORE WE BEGIN...
Join https://tlk.io/ordina-docker
WHAT IS DOCKER?
Build Ship Run
WHAT IS A CONTAINER?
Contains the complete runtime environment
Application
Dependencies
It feels like a
LIGHTWEIGHT VIRTUAL MACHINE
It has a shell (SSH, ...)
Has its own namespace
Has its own network interface
Run stuff as root
Services
Packages
But if it's not a VM, so what's the difference?
VIRTUAL MACHINES
App
bins/libs
Guest OS
App
bins/libs
Guest OS
App
bins/libs
Guest OS
Hypervisor
Host OS / Kernel
Infrastructure
CONTAINERS
Processes that share the same kernel
App
bins/libs
App
bins/libs
App
bins/libs Daemon
Kernel
Infrastructure
Docker
Architecture
BASIC DOCKER WORKFLOW
DOCKER HOST
Docker Daemon
Docker Remote API (REST)
unix:///var/run/docker.sock
https://dockerhost:2376
Downloads and runs the containers
DOCKER CLIENT
Talks to Docker daemon
DOCKER REGISTRY
Image repository
Official Docker Registry @ hub.docker.com
As a service @ Docker Trusted Registry
Host your own @ github.com/docker/distribution
DOCKER IMAGE
Basis for each container
Layers
LAYERS
Top layer is thrown away when container stops
Writeable Container
Image: My application
Image: Java 8
Base Image: Ubuntu
bootfs (Kernel)
CONTENT ADDRESSABLE IMAGE IDS
Previously random UUIDs
Secure hash of image and layer data (SHA-256)
Separation of images and layers
ID collision prevention
Data integrity
Migration needed from pre-1.10
VOLUMES
Write and read data from outside
Mount local folders onto the container
Docker Volume drivers available
Basic Docker
DEMO TIME!
Commands
DOCKERFILE
Instructions to automate building of your image
Steps are cached for fast-reuse
FROM java:8
COPY target/application.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
BASIC DOCKER COMMANDS
# Build the image in the working directory
$ docker build -t myapp .
# Run the image we just built as a container
$ docker run --name mycontainer myapp
# Stop the container
$ docker stop mycontainer
# Start the container again
$ docker start mycontainer
MANAGE CONTAINERS AND IMAGES
# List running containers
$ docker ps
# List all containers, including stopped
$ docker ps -a
# List all images
$ docker images
# Remove an image
$ docker rmi myapp
PUSH DOCKER IMAGES TO THE REGISTRY
# Login to Docker Registry
$ docker login --username=tomverelst --email=tom.verelst@or
dina.be
# Push the image to the Docker Registry
$ docker push myapp
HOW DO CONTAINERS REALLY WORK?
WARNING
Real low-level Linux stuff ahead!
BACK TO 2007, KERNEL 2.6.24
Control Groups aka cgroups
Kernel feature
Linux Containers aka lxc
Linux package that uses cgroups
CONTROL GROUP
Resource limiting
Prioritization
Accounting
Controlling
LINUX CONTAINERS
Package
Different on different Linux distro's
REDESIGN IN 2013
KERNEL 3.15 AND 3.16
NAMESPACE ISOLATION
PID namespace
Network namespace
Hostname
Mount namespace
Inter-process communication namespace
User namespace
FIRST DOCKER RELEASE IN 2013
Depended on LXC
Now abstracted with libcontainer
Benefits of containerisation
SCALING
IMMUTABLE INFRASTRUCTURE
DevOps
DEV
Application and dependencies
Inside of the container
OPS
Infrastructure
Outside of the container
CONTINUOUS INTEGRATION
Same artifact for all environments
No more "It worked on my laptop"
Run your builds and tests inside containers
Orchestration
Compose Machine Swarm Networking
Compose
Define and run multi-container applications
Single host
Multi-host experimental
Machine
Create and provision machines as Docker hosts
Create new Docker hosts
Run containers on these new hosts
Drivers
Swarm
Clustering tool
Turn multiple hosts into one virtual host
Service discovery
Scheduling
Introduction to Docker
LABELS
Define custom labels to your Docker host
$ docker daemon --label env="production" --label storage="ssd"
$ docker-machine --engine-label env="production" --label storage="ssd"
$ docker run -e constraint:env==production -e constraint:storage==ssd ...
Filters
NODE
Constraint
Health
 
CONTAINER
Affinity
Port
Dependency
Networking
Create overlay networks
Replaces links (bridge)
Network plugins (Weave)
Embedded DNS server
Compose + Swarm Production Ready?
NOPE
https://github.com/docker/compose/issues/2866
https://cloud.docker.com/
(Tutum: )https://www.tutum.co/
Tools
Kubernetes
Introduction to Docker
Introduction to Docker
etcd etcd etcdDocker Docker Docker
CoreOS host CoreOS host CoreOS host
Host #1 Host #2 Host #3
etcd
fleetctl
etcdctl
fleetd
nServices
systemd
service files pool
Docker
containers
Docker
containers
Docker
containers
Local machine
Lattice
Flocker
Data Volume Manager
Introduction to Docker
CONTAINER SECURITY
Isolation
Dependencies
Seccomp profiles
Coming soon: Unikernels
Security patches
NODE SECURITY
Daemon must run as root
Default authorization is all or nothing
Authorization plugins
Roadmap
Thank You!
Automation & Tooling Competence Center
© 2016 JWorks

More Related Content

PPTX
Docker 101 Checonf 2016
Patrick Chanezon
 
PPTX
Docker Platform and Ecosystem
Patrick Chanezon
 
PPTX
What's New in Docker - February 2017
Patrick Chanezon
 
PPTX
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker, Inc.
 
PDF
Introduction to Docker - VIT Campus
Ajeet Singh Raina
 
PPTX
Docker Platform and Ecosystem Nov 2015
Patrick Chanezon
 
PPTX
Docker Roadshow 2016
Docker, Inc.
 
PDF
Online Meetup: What's new in docker 1.13.0
Docker, Inc.
 
Docker 101 Checonf 2016
Patrick Chanezon
 
Docker Platform and Ecosystem
Patrick Chanezon
 
What's New in Docker - February 2017
Patrick Chanezon
 
Docker and Microsoft - Windows Server 2016 Technical Deep Dive
Docker, Inc.
 
Introduction to Docker - VIT Campus
Ajeet Singh Raina
 
Docker Platform and Ecosystem Nov 2015
Patrick Chanezon
 
Docker Roadshow 2016
Docker, Inc.
 
Online Meetup: What's new in docker 1.13.0
Docker, Inc.
 

What's hot (20)

PPTX
Docker Basic to Advance
Paras Jain
 
PPTX
Intro to Docker at the 2016 Evans Developer relations conference
Mano Marks
 
PDF
Building Reusable Development Environments with Docker
Revelation Technologies
 
PDF
Infinit: Modern Storage Platform for Container Environments
Docker, Inc.
 
PPTX
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Jonas Rosland
 
PDF
Docker on Google App Engine
Docker, Inc.
 
PDF
Dev with Docker WCPHX 2019
Maura Teal
 
PPTX
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Patrick Chanezon
 
PDF
Docker Overview - Rise of the Containers
Ryan Hodgin
 
PPTX
Docker Bday #5, SF Edition: Introduction to Docker
Docker, Inc.
 
PDF
Modernizing Java Apps with Docker
Docker, Inc.
 
PPTX
DockerCon EU 2015: Speed Up Deployment: Building a Distributed Docker Registr...
Docker, Inc.
 
PPTX
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Patrick Chanezon
 
PDF
Docker introduction
Julien Maitrehenry
 
PPTX
Docker Online Meetup: Announcing Docker CE + EE
Docker, Inc.
 
PPTX
Why Docker
dotCloud
 
PPTX
Continous delivery at docker age
Adrien Blind
 
PPTX
Container as a Service with Docker
Patrick Chanezon
 
PDF
Docker Birthday #3 - Intro to Docker Slides
Docker, Inc.
 
PDF
Docker in pratice -chenyifei
dotCloud
 
Docker Basic to Advance
Paras Jain
 
Intro to Docker at the 2016 Evans Developer relations conference
Mano Marks
 
Building Reusable Development Environments with Docker
Revelation Technologies
 
Infinit: Modern Storage Platform for Container Environments
Docker, Inc.
 
Docker and containers - For Boston Docker Meetup Workshop in March 2015
Jonas Rosland
 
Docker on Google App Engine
Docker, Inc.
 
Dev with Docker WCPHX 2019
Maura Teal
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Patrick Chanezon
 
Docker Overview - Rise of the Containers
Ryan Hodgin
 
Docker Bday #5, SF Edition: Introduction to Docker
Docker, Inc.
 
Modernizing Java Apps with Docker
Docker, Inc.
 
DockerCon EU 2015: Speed Up Deployment: Building a Distributed Docker Registr...
Docker, Inc.
 
Docker Orchestration: Welcome to the Jungle! Devoxx & Docker Meetup Tour Nov ...
Patrick Chanezon
 
Docker introduction
Julien Maitrehenry
 
Docker Online Meetup: Announcing Docker CE + EE
Docker, Inc.
 
Why Docker
dotCloud
 
Continous delivery at docker age
Adrien Blind
 
Container as a Service with Docker
Patrick Chanezon
 
Docker Birthday #3 - Intro to Docker Slides
Docker, Inc.
 
Docker in pratice -chenyifei
dotCloud
 
Ad

Viewers also liked (19)

PDF
Documenting your REST API with Swagger - JOIN 2014
JWORKS powered by Ordina
 
PDF
Batch Processing - A&BP CC
JWORKS powered by Ordina
 
PPTX
Mongodb @ vrt
JWORKS powered by Ordina
 
PPTX
Meteor - JOIN 2015
JWORKS powered by Ordina
 
PPTX
Clean Code - A&BP CC
JWORKS powered by Ordina
 
PDF
Responsive web - CC FE & UX
JWORKS powered by Ordina
 
PDF
mwpc gas gain report
Andrew Schick
 
PPTX
Big data document and graph d bs - couch-db and orientdb
JWORKS powered by Ordina
 
PDF
Microservices with Netflix OSS & Hypermedia APIs - JavaDay Kiev
JWORKS powered by Ordina
 
PDF
Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx
JWORKS powered by Ordina
 
PPTX
Mongo db intro.pptx
JWORKS powered by Ordina
 
PDF
Unit testing - A&BP CC
JWORKS powered by Ordina
 
PPTX
Hadoop bootcamp getting started
JWORKS powered by Ordina
 
PDF
An introduction to Cloud Foundry
JWORKS powered by Ordina
 
PPTX
SAP SuccessFactors With BGBS MENA
Darem Alkhayer
 
PDF
AngularJS Basics and Best Practices - CC FE &UX
JWORKS powered by Ordina
 
PDF
JavaScript Basics and Best Practices - CC FE & UX
JWORKS powered by Ordina
 
PDF
Lagom in Practice
JWORKS powered by Ordina
 
PDF
reveal.js 3.0.0
Hakim El Hattab
 
Documenting your REST API with Swagger - JOIN 2014
JWORKS powered by Ordina
 
Batch Processing - A&BP CC
JWORKS powered by Ordina
 
Meteor - JOIN 2015
JWORKS powered by Ordina
 
Clean Code - A&BP CC
JWORKS powered by Ordina
 
Responsive web - CC FE & UX
JWORKS powered by Ordina
 
mwpc gas gain report
Andrew Schick
 
Big data document and graph d bs - couch-db and orientdb
JWORKS powered by Ordina
 
Microservices with Netflix OSS & Hypermedia APIs - JavaDay Kiev
JWORKS powered by Ordina
 
Spring REST Docs: Documenting RESTful APIs using your tests - Devoxx
JWORKS powered by Ordina
 
Mongo db intro.pptx
JWORKS powered by Ordina
 
Unit testing - A&BP CC
JWORKS powered by Ordina
 
Hadoop bootcamp getting started
JWORKS powered by Ordina
 
An introduction to Cloud Foundry
JWORKS powered by Ordina
 
SAP SuccessFactors With BGBS MENA
Darem Alkhayer
 
AngularJS Basics and Best Practices - CC FE &UX
JWORKS powered by Ordina
 
JavaScript Basics and Best Practices - CC FE & UX
JWORKS powered by Ordina
 
Lagom in Practice
JWORKS powered by Ordina
 
reveal.js 3.0.0
Hakim El Hattab
 
Ad

Similar to Introduction to Docker (20)

PDF
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Partner S.A.
 
PDF
Docker introduction for Carbon IT
yannick grenzinger
 
PPTX
Dockerize the World
damovsky
 
PPTX
Docker lxc win
rahulmore01
 
PDF
codemotion-docker-2014
Carlo Bonamico
 
PPTX
ma-formation-en-Docker-jlklk,nknkjn.pptx
imenhamada17
 
PDF
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Codemotion
 
PDF
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
PDF
Docker
Brian Hogan
 
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)
 
PPT
Docker Devops document for short summary
AdiB912552
 
PDF
Cloud Native Computing - Part III - Containers
Linjith Kunnon
 
PDF
Docker_AGH_v0.1.3
Witold 'Ficio' Kopel
 
PPTX
Docker.pptx
balaji257
 
PDF
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Puja Abbassi
 
PDF
Docker, but what it is?
Julien Maitrehenry
 
PPTX
Dockerize the World - presentation from Hradec Kralove
damovsky
 
PDF
Docker Essentials Workshop— Innovation Labs July 2020
CloudHero
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Partner S.A.
 
Docker introduction for Carbon IT
yannick grenzinger
 
Dockerize the World
damovsky
 
Docker lxc win
rahulmore01
 
codemotion-docker-2014
Carlo Bonamico
 
ma-formation-en-Docker-jlklk,nknkjn.pptx
imenhamada17
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Codemotion
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
Docker
Brian Hogan
 
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)
 
Docker Devops document for short summary
AdiB912552
 
Cloud Native Computing - Part III - Containers
Linjith Kunnon
 
Docker_AGH_v0.1.3
Witold 'Ficio' Kopel
 
Docker.pptx
balaji257
 
Introduction to Docker and Linux Containers @ Cloud Computing Rhein Main
Puja Abbassi
 
Docker, but what it is?
Julien Maitrehenry
 
Dockerize the World - presentation from Hradec Kralove
damovsky
 
Docker Essentials Workshop— Innovation Labs July 2020
CloudHero
 

More from JWORKS powered by Ordina (17)

PDF
Introduction to Webpack - Ordina JWorks - CC JS & Web
JWORKS powered by Ordina
 
PDF
Netflix OSS and HATEOAS deployed on production - JavaLand
JWORKS powered by Ordina
 
PDF
Cc internet of things @ Thomas More
JWORKS powered by Ordina
 
PDF
Cc internet of things LoRa and IoT - Innovation Enablers
JWORKS powered by Ordina
 
PPTX
Big data key-value and column stores redis - cassandra
JWORKS powered by Ordina
 
PPTX
Big data elasticsearch practical
JWORKS powered by Ordina
 
PDF
Intro to cassandra
JWORKS powered by Ordina
 
PPTX
Android wear - CC Mobile
JWORKS powered by Ordina
 
PDF
Integration testing - A&BP CC
JWORKS powered by Ordina
 
PDF
Spring 4 - A&BP CC
JWORKS powered by Ordina
 
PPTX
Android secure offline storage - CC Mobile
JWORKS powered by Ordina
 
PPTX
Java 7 & 8 - A&BP CC
JWORKS powered by Ordina
 
PDF
IoT: A glance into the future
JWORKS powered by Ordina
 
PDF
Workshop Ionic Framework - CC FE & UX
JWORKS powered by Ordina
 
PDF
IoT: LoRa and Java on the PI
JWORKS powered by Ordina
 
PDF
IoT: An introduction
JWORKS powered by Ordina
 
PDF
Unit Testing in AngularJS - CC FE & UX
JWORKS powered by Ordina
 
Introduction to Webpack - Ordina JWorks - CC JS & Web
JWORKS powered by Ordina
 
Netflix OSS and HATEOAS deployed on production - JavaLand
JWORKS powered by Ordina
 
Cc internet of things @ Thomas More
JWORKS powered by Ordina
 
Cc internet of things LoRa and IoT - Innovation Enablers
JWORKS powered by Ordina
 
Big data key-value and column stores redis - cassandra
JWORKS powered by Ordina
 
Big data elasticsearch practical
JWORKS powered by Ordina
 
Intro to cassandra
JWORKS powered by Ordina
 
Android wear - CC Mobile
JWORKS powered by Ordina
 
Integration testing - A&BP CC
JWORKS powered by Ordina
 
Spring 4 - A&BP CC
JWORKS powered by Ordina
 
Android secure offline storage - CC Mobile
JWORKS powered by Ordina
 
Java 7 & 8 - A&BP CC
JWORKS powered by Ordina
 
IoT: A glance into the future
JWORKS powered by Ordina
 
Workshop Ionic Framework - CC FE & UX
JWORKS powered by Ordina
 
IoT: LoRa and Java on the PI
JWORKS powered by Ordina
 
IoT: An introduction
JWORKS powered by Ordina
 
Unit Testing in AngularJS - CC FE & UX
JWORKS powered by Ordina
 

Recently uploaded (20)

PPTX
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
PDF
Balancing Resource Capacity and Workloads with OnePlan – Avoid Overloading Te...
OnePlan Solutions
 
PPTX
Presentation about variables and constant.pptx
kr2589474
 
PDF
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
PPTX
Presentation about variables and constant.pptx
safalsingh810
 
PDF
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
 
PDF
49785682629390197565_LRN3014_Migrating_the_Beast.pdf
Abilash868456
 
PDF
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
 
PDF
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
PDF
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
DOCX
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
PDF
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
PPTX
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
PPTX
Role Of Python In Programing Language.pptx
jaykoshti048
 
PDF
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
PDF
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
PDF
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
PDF
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
 
PDF
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
 
PPTX
AI-Ready Handoff: Auto-Summaries & Draft Emails from MQL to Slack in One Flow
bbedford2
 
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
Balancing Resource Capacity and Workloads with OnePlan – Avoid Overloading Te...
OnePlan Solutions
 
Presentation about variables and constant.pptx
kr2589474
 
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
Presentation about variables and constant.pptx
safalsingh810
 
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
 
49785682629390197565_LRN3014_Migrating_the_Beast.pdf
Abilash868456
 
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
 
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
Role Of Python In Programing Language.pptx
jaykoshti048
 
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
 
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
 
AI-Ready Handoff: Auto-Summaries & Draft Emails from MQL to Slack in One Flow
bbedford2
 

Introduction to Docker