SlideShare a Scribd company logo
1 of 34
Download to read offline
DOCKER INTRODUCTION
JULIEN MAITREHENRY
Dev & Ops @PetalMD
@jmaitrehenry
https://github.com/jmaitrehenry
AGENDA
‣ The Challenge
‣ Docker as solution
‣ But What is Docker?
‣ What’s an image?
‣ What’s a container?
‣ Questions?
THE CHALLENGE
THE CHALLENGE
THE CHALLENGE
THE MATRIX FROM HELL
THE CHALLENGE
CARGO TRANSPORT PRE-1960
THE CHALLENGE
ALSO A MATRIX FROM HELL
DOCKER AS SOLUTION
SOLUTION: INTERMODAL SHIPPING CONTAINER
DOCKER AS SOLUTION
DOCKER IS A CONTAINER SYSTEM FOR CODE
DOCKER AS SOLUTION
DOCKER ELIMINATES THE MATRIX FROM HELL
BUT WHAT IS
DOCKER?
BUT WHAT IT’S DOCKER?
Docker containers wrap a piece of software in a
complete filesystem that contains everything needed to
run: code, runtime, system tools, system libraries –
anything that can be installed on a server. This
guarantees that the software will always run the same,
regardless of its environment
BUT WHAT IT’S DOCKER?
DOCKER STATS
BUT WHAT IT’S DOCKER?
DOCKER ENGINE
▸ Lightweight runtime and robust
tooling that:
▸ Build image
▸ Ship image
▸ Run containers
BUT WHAT IT’S DOCKER?
DOCKER COMPOSE
▸ Define multi-container app with
multiple dependencies in one file
▸ Hold structure and configuration in
a single place
▸ Spin application up (or down) with
a single command
BUT WHAT IT’S DOCKER?
DOCKER REGISTRY
▸ Store and distribute Docker Image
▸ Many hosted registries available:
▸ Docker Hub, AWS ECR, …
▸ Could be self hosted with many
storage backends:
▸ Local, AWS S3, Ceph,
OpenStack Swift, …
BUT WHAT IT’S DOCKER?
DOCKER SWARM
▸ Turn group of Docker Engine into a
single, virtual Docker Engine
▸ Native clustering capabilities
▸ High Scalability
▸ Failover & High Availability
▸ Built-in scheduler
▸ Node discovery
▸ …
WHY DOCKER?
SEPARATION OF CONCERNS: FRANCIS THE DEVELOPER
▸ Inside my container:
▸ My code
▸ My libraries
▸ My package manager
▸ My app
▸ My data
WHY DOCKER?
SEPARATION OF CONCERNS: JULIEN THE OPS GUY
▸ Outside the container:
▸ Logging
▸ Remote access
▸ Network configuration
▸ Monitoring
▸ High Availability
WHAT’S AN
IMAGE?
WHAT’S AN IMAGE
DEFINITION
▸ Each Docker image references a list of read-only layers that
represent filesystem differences
▸ Layers are stacked on top of each other to form a base for a
container’s root filesystem
▸ Each layer are Read Only
▸ The Docker storage driver is responsible for stacking these
layers and providing a single unified view
▸ Each layer can be shared with other image
WHAT’S AN IMAGE
IT’S A SIMPLE FILE - A DOCKERFILE
FROM mhart/alpine-node:6
ENV SERVICE_3000_NAME selfpro
WORKDIR /src
ADD . .
RUN apk add --update --no-cache git && 

npm install
EXPOSE 3000
CMD npm start
WHAT’S AN IMAGE
BUILDING…
docker build -t petalmd/selfpro -f docker/Dockerfile.app .
Sending build context to Docker daemon 1.398 MB
Step 1 : FROM mhart/alpine-node:6
---> 2e8721f40082
Step 2 : ENV SERVICE_3000_NAME selfpro
---> Running in cd8e6156fbec
---> 9d9b1f86a696
Removing intermediate container cd8e6156fbec
[...]
Step 7 : CMD npm start
---> Running in 71bab8276b39
---> cce4c583c3a0
Removing intermediate container 71bab8276b39
Successfully built cce4c583c3a0
WHAT’S AN IMAGE
RESULT ON A STACK OF LAYERS
IMAGE CREATED CREATED BY SIZE
cce4c583c3a0 2 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "npm s 0 B
110c49285fe1 2 minutes ago /bin/sh -c #(nop) EXPOSE 3000/tcp 0 B
579469b24848 2 minutes ago /bin/sh -c apk add --update --no-cache git && 54.16 MB
5b34c5ef9a7f 3 minutes ago /bin/sh -c #(nop) %s %s in %s ADD dir:b07dd1 1.044 MB
6ba4a61f509a 3 minutes ago /bin/sh -c #(nop) WORKDIR /src 0 B
9d9b1f86a696 3 minutes ago /bin/sh -c #(nop) ENV SERVICE_3000_NAME=self 0 B
2e8721f40082 3 weeks ago /bin/sh -c apk add --no-cache curl make gcc g 41.44 MB
<missing> 3 weeks ago /bin/sh -c #(nop) ENV VERSION=v6.2.1 NPM_VERS 0 B
<missing> 3 weeks ago /bin/sh -c #(nop) ADD file:701fd33a2f463fd4bd 4.799 MB
docker history cce4c583c3a0
docker history petalmd/selfpro
WHAT’S AN IMAGE
WHY IMAGE ARE SO LIGHTWEIGHT?
▸ Each image can share layers
▸ An image can be build on top of other images
▸ A static website can be build on top of nginx image
which is build on top of an alpine image
▸ Building an image could result on rebuilding only last top
layers
WHAT’S AN IMAGE
EXAMPLE
/bin/sh -c #(nop) ADD file:614a9122187935fccf 4.797 MB
addgroup -S redis && adduser -S -G […]
apk add --no-cache ‘su-exec>=0.2' […]
ENV REDIS_VERSION=3.2.1
CMD ["redis-server"]
[9 other layers]
MAINTAINER NGINX Docker Maintainers
ENV NGINX_VERSION=1.11.1
EXPOSE 443/tcp 80/tcp
CMD ["nginx" "-g" "daemon off;”] 0 B
[5 other layers]
alpine:3.3
redis:alpine nginx:alpine
WHAT’S A CONTAINER
WHAT’S A CONTAINER
▸ IT IS A RUNNING IMAGE
▸ WITH A R/W TOP LAYER
WHAT’S A CONTAINER
RUN EVERYWHERE
▸ Regardless of kernel version
▸ Regardless of host distribution
▸ Physical or virtual, cloud or not
▸ Container and host architecture should match
WHAT’S A CONTAINER
IT’S A LIGHTWEIGHT VM
▸ Own process space
▸ Own network interface
▸ Can run stuff as root or as any custom user
WHAT’S A CONTAINER
IT’S A CHROOT ON STEROIDS
▸ Container = isolated process
▸ Share kernel with host (linux and windows containers)
▸ No device emulation (neither HVM nor PV)
WHAT’S A CONTAINER
VIRTUAL MACHINES CONTAINERS
WHAT’S A CONTAINER
COMPUTE EFFICIENCY
▸ CPU performance = native performance
▸ Memory performance = ~native performance
▸ Network performance = small overhead; can be reduced
to zero
WHAT’S A CONTAINER
STORAGE EFFICIENCY
▸ Depend on storage driver
https://docs.docker.com/engine/userguide/storagedriver/selectadriver/
QUESTIONS?

More Related Content

What's hot

Docker introduction
Docker introductionDocker introduction
Docker introductionPhuc Nguyen
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionSparkbit
 
Docker introduction &amp; benefits
Docker introduction &amp; benefitsDocker introduction &amp; benefits
Docker introduction &amp; benefitsAmit Manwade
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...Edureka!
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with DockerRavindu Fernando
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAditya Konarde
 
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...Simplilearn
 
Docker introduction
Docker introductionDocker introduction
Docker introductionGourav Varma
 
Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)Gourav Varma
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker, Inc.
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersYajushi Srivastava
 
A Hands-On Introduction To Docker Containers.pdf
A Hands-On Introduction To Docker Containers.pdfA Hands-On Introduction To Docker Containers.pdf
A Hands-On Introduction To Docker Containers.pdfEdith Puclla
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionPeng Xiao
 

What's hot (20)

Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker introduction &amp; benefits
Docker introduction &amp; benefitsDocker introduction &amp; benefits
Docker introduction &amp; benefits
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 
Docker
DockerDocker
Docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and Containers
 
A Hands-On Introduction To Docker Containers.pdf
A Hands-On Introduction To Docker Containers.pdfA Hands-On Introduction To Docker Containers.pdf
A Hands-On Introduction To Docker Containers.pdf
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Intro To Docker
Intro To DockerIntro To Docker
Intro To Docker
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Intro to docker
Intro to dockerIntro to docker
Intro to docker
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Docker.pptx
Docker.pptxDocker.pptx
Docker.pptx
 

Similar to Docker introduction

Streamline your development environment with docker
Streamline your development environment with dockerStreamline your development environment with docker
Streamline your development environment with dockerGiacomo Bagnoli
 
Docker Essentials Workshop— Innovation Labs July 2020
Docker Essentials Workshop— Innovation Labs July 2020Docker Essentials Workshop— Innovation Labs July 2020
Docker Essentials Workshop— Innovation Labs July 2020CloudHero
 
Docker for mere mortals
Docker for mere mortalsDocker for mere mortals
Docker for mere mortalsHenryk Konsek
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014Carlo Bonamico
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to DockerJian Wu
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
 
Linux containers & Devops
Linux containers & DevopsLinux containers & Devops
Linux containers & DevopsMaciej Lasyk
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline Docker, Inc.
 
BDM32: AdamCloud Project - Part II
BDM32: AdamCloud Project - Part IIBDM32: AdamCloud Project - Part II
BDM32: AdamCloud Project - Part IIDavid Lauzon
 
Docker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak PeekDocker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak Peekmsyukor
 
Présentation de Docker
Présentation de DockerPrésentation de Docker
Présentation de DockerProto204
 
Orchestrating Docker with OpenStack
Orchestrating Docker with OpenStackOrchestrating Docker with OpenStack
Orchestrating Docker with OpenStackErica Windisch
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇Philip Zheng
 

Similar to Docker introduction (20)

Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Introducing Docker
Introducing DockerIntroducing Docker
Introducing Docker
 
Streamline your development environment with docker
Streamline your development environment with dockerStreamline your development environment with docker
Streamline your development environment with docker
 
Docker Essentials Workshop— Innovation Labs July 2020
Docker Essentials Workshop— Innovation Labs July 2020Docker Essentials Workshop— Innovation Labs July 2020
Docker Essentials Workshop— Innovation Labs July 2020
 
Docker Intro
Docker IntroDocker Intro
Docker Intro
 
Docker for mere mortals
Docker for mere mortalsDocker for mere mortals
Docker for mere mortals
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Introduction to Docker
Introduction  to DockerIntroduction  to Docker
Introduction to Docker
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
Linux containers & Devops
Linux containers & DevopsLinux containers & Devops
Linux containers & Devops
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
BDM32: AdamCloud Project - Part II
BDM32: AdamCloud Project - Part IIBDM32: AdamCloud Project - Part II
BDM32: AdamCloud Project - Part II
 
Docker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak PeekDocker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak Peek
 
Docker intro
Docker introDocker intro
Docker intro
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
Présentation de Docker
Présentation de DockerPrésentation de Docker
Présentation de Docker
 
Orchestrating Docker with OpenStack
Orchestrating Docker with OpenStackOrchestrating Docker with OpenStack
Orchestrating Docker with OpenStack
 
Docker, but what it is?
Docker, but what it is?Docker, but what it is?
Docker, but what it is?
 
Docker as an every day work tool
Docker as an every day work toolDocker as an every day work tool
Docker as an every day work tool
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇
 

More from Julien Maitrehenry

Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Julien Maitrehenry
 
A la découverte de kubernetes
A la découverte de kubernetesA la découverte de kubernetes
A la découverte de kubernetesJulien Maitrehenry
 
Comment maitriser git et produire de beaux commits
Comment maitriser git et produire de beaux commitsComment maitriser git et produire de beaux commits
Comment maitriser git et produire de beaux commitsJulien Maitrehenry
 
Global Azure Bootcamp Québec - Container on Azure
Global Azure Bootcamp Québec - Container on AzureGlobal Azure Bootcamp Québec - Container on Azure
Global Azure Bootcamp Québec - Container on AzureJulien Maitrehenry
 
Build a Docker Swarm cluster on Azure
Build a Docker Swarm cluster on Azure Build a Docker Swarm cluster on Azure
Build a Docker Swarm cluster on Azure Julien Maitrehenry
 
Retour d'expérience sur notre stack de log
Retour d'expérience sur notre stack de logRetour d'expérience sur notre stack de log
Retour d'expérience sur notre stack de logJulien Maitrehenry
 
Docker, ça mange quoi au printemps
Docker, ça mange quoi au printempsDocker, ça mange quoi au printemps
Docker, ça mange quoi au printempsJulien Maitrehenry
 
Sécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbot
Sécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbotSécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbot
Sécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbotJulien Maitrehenry
 
Fullstack monitoring - Overview
Fullstack monitoring - OverviewFullstack monitoring - Overview
Fullstack monitoring - OverviewJulien Maitrehenry
 
Docker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-templateDocker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-templateJulien Maitrehenry
 

More from Julien Maitrehenry (11)

Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?Docker, mais qu’est-ce que c’est ?
Docker, mais qu’est-ce que c’est ?
 
A la découverte de kubernetes
A la découverte de kubernetesA la découverte de kubernetes
A la découverte de kubernetes
 
Comment maitriser git et produire de beaux commits
Comment maitriser git et produire de beaux commitsComment maitriser git et produire de beaux commits
Comment maitriser git et produire de beaux commits
 
Global Azure Bootcamp Québec - Container on Azure
Global Azure Bootcamp Québec - Container on AzureGlobal Azure Bootcamp Québec - Container on Azure
Global Azure Bootcamp Québec - Container on Azure
 
Build a Docker Swarm cluster on Azure
Build a Docker Swarm cluster on Azure Build a Docker Swarm cluster on Azure
Build a Docker Swarm cluster on Azure
 
Retour d'expérience sur notre stack de log
Retour d'expérience sur notre stack de logRetour d'expérience sur notre stack de log
Retour d'expérience sur notre stack de log
 
Docker, ça mange quoi au printemps
Docker, ça mange quoi au printempsDocker, ça mange quoi au printemps
Docker, ça mange quoi au printemps
 
Code, ship and run
Code, ship and runCode, ship and run
Code, ship and run
 
Sécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbot
Sécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbotSécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbot
Sécuriser Docker - Utilisation du CIS Docker 1.12 by @guytalbot
 
Fullstack monitoring - Overview
Fullstack monitoring - OverviewFullstack monitoring - Overview
Fullstack monitoring - Overview
 
Docker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-templateDocker cluster with swarm, consul, registrator and consul-template
Docker cluster with swarm, consul, registrator and consul-template
 

Recently uploaded

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Docker introduction

  • 2. JULIEN MAITREHENRY Dev & Ops @PetalMD @jmaitrehenry https://github.com/jmaitrehenry
  • 3. AGENDA ‣ The Challenge ‣ Docker as solution ‣ But What is Docker? ‣ What’s an image? ‣ What’s a container? ‣ Questions?
  • 7. THE CHALLENGE ALSO A MATRIX FROM HELL
  • 8. DOCKER AS SOLUTION SOLUTION: INTERMODAL SHIPPING CONTAINER
  • 9. DOCKER AS SOLUTION DOCKER IS A CONTAINER SYSTEM FOR CODE
  • 10. DOCKER AS SOLUTION DOCKER ELIMINATES THE MATRIX FROM HELL
  • 12. BUT WHAT IT’S DOCKER? Docker containers wrap a piece of software in a complete filesystem that contains everything needed to run: code, runtime, system tools, system libraries – anything that can be installed on a server. This guarantees that the software will always run the same, regardless of its environment
  • 13. BUT WHAT IT’S DOCKER? DOCKER STATS
  • 14. BUT WHAT IT’S DOCKER? DOCKER ENGINE ▸ Lightweight runtime and robust tooling that: ▸ Build image ▸ Ship image ▸ Run containers
  • 15. BUT WHAT IT’S DOCKER? DOCKER COMPOSE ▸ Define multi-container app with multiple dependencies in one file ▸ Hold structure and configuration in a single place ▸ Spin application up (or down) with a single command
  • 16. BUT WHAT IT’S DOCKER? DOCKER REGISTRY ▸ Store and distribute Docker Image ▸ Many hosted registries available: ▸ Docker Hub, AWS ECR, … ▸ Could be self hosted with many storage backends: ▸ Local, AWS S3, Ceph, OpenStack Swift, …
  • 17. BUT WHAT IT’S DOCKER? DOCKER SWARM ▸ Turn group of Docker Engine into a single, virtual Docker Engine ▸ Native clustering capabilities ▸ High Scalability ▸ Failover & High Availability ▸ Built-in scheduler ▸ Node discovery ▸ …
  • 18. WHY DOCKER? SEPARATION OF CONCERNS: FRANCIS THE DEVELOPER ▸ Inside my container: ▸ My code ▸ My libraries ▸ My package manager ▸ My app ▸ My data
  • 19. WHY DOCKER? SEPARATION OF CONCERNS: JULIEN THE OPS GUY ▸ Outside the container: ▸ Logging ▸ Remote access ▸ Network configuration ▸ Monitoring ▸ High Availability
  • 21. WHAT’S AN IMAGE DEFINITION ▸ Each Docker image references a list of read-only layers that represent filesystem differences ▸ Layers are stacked on top of each other to form a base for a container’s root filesystem ▸ Each layer are Read Only ▸ The Docker storage driver is responsible for stacking these layers and providing a single unified view ▸ Each layer can be shared with other image
  • 22. WHAT’S AN IMAGE IT’S A SIMPLE FILE - A DOCKERFILE FROM mhart/alpine-node:6 ENV SERVICE_3000_NAME selfpro WORKDIR /src ADD . . RUN apk add --update --no-cache git && 
 npm install EXPOSE 3000 CMD npm start
  • 23. WHAT’S AN IMAGE BUILDING… docker build -t petalmd/selfpro -f docker/Dockerfile.app . Sending build context to Docker daemon 1.398 MB Step 1 : FROM mhart/alpine-node:6 ---> 2e8721f40082 Step 2 : ENV SERVICE_3000_NAME selfpro ---> Running in cd8e6156fbec ---> 9d9b1f86a696 Removing intermediate container cd8e6156fbec [...] Step 7 : CMD npm start ---> Running in 71bab8276b39 ---> cce4c583c3a0 Removing intermediate container 71bab8276b39 Successfully built cce4c583c3a0
  • 24. WHAT’S AN IMAGE RESULT ON A STACK OF LAYERS IMAGE CREATED CREATED BY SIZE cce4c583c3a0 2 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "npm s 0 B 110c49285fe1 2 minutes ago /bin/sh -c #(nop) EXPOSE 3000/tcp 0 B 579469b24848 2 minutes ago /bin/sh -c apk add --update --no-cache git && 54.16 MB 5b34c5ef9a7f 3 minutes ago /bin/sh -c #(nop) %s %s in %s ADD dir:b07dd1 1.044 MB 6ba4a61f509a 3 minutes ago /bin/sh -c #(nop) WORKDIR /src 0 B 9d9b1f86a696 3 minutes ago /bin/sh -c #(nop) ENV SERVICE_3000_NAME=self 0 B 2e8721f40082 3 weeks ago /bin/sh -c apk add --no-cache curl make gcc g 41.44 MB <missing> 3 weeks ago /bin/sh -c #(nop) ENV VERSION=v6.2.1 NPM_VERS 0 B <missing> 3 weeks ago /bin/sh -c #(nop) ADD file:701fd33a2f463fd4bd 4.799 MB docker history cce4c583c3a0 docker history petalmd/selfpro
  • 25. WHAT’S AN IMAGE WHY IMAGE ARE SO LIGHTWEIGHT? ▸ Each image can share layers ▸ An image can be build on top of other images ▸ A static website can be build on top of nginx image which is build on top of an alpine image ▸ Building an image could result on rebuilding only last top layers
  • 26. WHAT’S AN IMAGE EXAMPLE /bin/sh -c #(nop) ADD file:614a9122187935fccf 4.797 MB addgroup -S redis && adduser -S -G […] apk add --no-cache ‘su-exec>=0.2' […] ENV REDIS_VERSION=3.2.1 CMD ["redis-server"] [9 other layers] MAINTAINER NGINX Docker Maintainers ENV NGINX_VERSION=1.11.1 EXPOSE 443/tcp 80/tcp CMD ["nginx" "-g" "daemon off;”] 0 B [5 other layers] alpine:3.3 redis:alpine nginx:alpine
  • 27. WHAT’S A CONTAINER WHAT’S A CONTAINER ▸ IT IS A RUNNING IMAGE ▸ WITH A R/W TOP LAYER
  • 28. WHAT’S A CONTAINER RUN EVERYWHERE ▸ Regardless of kernel version ▸ Regardless of host distribution ▸ Physical or virtual, cloud or not ▸ Container and host architecture should match
  • 29. WHAT’S A CONTAINER IT’S A LIGHTWEIGHT VM ▸ Own process space ▸ Own network interface ▸ Can run stuff as root or as any custom user
  • 30. WHAT’S A CONTAINER IT’S A CHROOT ON STEROIDS ▸ Container = isolated process ▸ Share kernel with host (linux and windows containers) ▸ No device emulation (neither HVM nor PV)
  • 31. WHAT’S A CONTAINER VIRTUAL MACHINES CONTAINERS
  • 32. WHAT’S A CONTAINER COMPUTE EFFICIENCY ▸ CPU performance = native performance ▸ Memory performance = ~native performance ▸ Network performance = small overhead; can be reduced to zero
  • 33. WHAT’S A CONTAINER STORAGE EFFICIENCY ▸ Depend on storage driver https://docs.docker.com/engine/userguide/storagedriver/selectadriver/