SlideShare une entreprise Scribd logo
1  sur  34
docker run florian/presentation:A4
Docker et le monde des containers logiciels (v2)
Lundi 24 Juin 2019
1
Florian Bobinid $PRESENTER
whoami
A4 - Futur ingénieur systèmes Linux / DevOps
2
FROM C’est quoi Docker ? Son impact dans le monde IT ?
RUN C’est quoi un container logiciel ? Comment ça marche ?
RUN Le fonctionnement de Docker (client, images, COW, volumes)
RUN Et la virtualisation alors ?
ENV conclusion=”Les containers aujourd’hui, l’écosystème et le futur”
Introduction
Dive into
containers
Le Dockerfile de la présentation
Conclusion
3
La définition de
base
Histoire
C’est quoi Docker ?
Présentation globale
Docker est un outil qui peut empaqueter une application et ses
dépendances dans un conteneur isolé, qui pourra être exécuté sur
n'importe quel serveur - 451 Research
▪ Silicon Valley : entreprise française - dotCloud (PaaS)
▪ Fondée par Solomon Hykes (Epitech Lille)
▪ Projet Docker devenu Open-Source en 2013
▪ Devenue Docker Inc. depuis 2013
La technologie
■ Utilise un ensemble de technologies open-source
■ Développée en Golang (Google)
■ Historiquement : utilisait une API au dessus de LXC
■ Maintenant : libcontainer => runC (standardisé)
■ Docker est désormais un standard dans le monde des containers
(Open Container Initiative)
C’est quoi Docker ? | Dive into containers | Conclusion
4
C’est quoi Docker ?
Son impact dans le monde IT
C’est quoi Docker ? | Dive into containers | Conclusion
5
C’est quoi Docker ?
L’impact dans le monde IT
C’est quoi Docker ? | Dive into containers | Conclusion
6
Dive into containers
C’est quoi Docker ? | Dive into containers | Conclusion
7
Analogie
Dive into containers
C’est quoi un container ?
Même principe que les conteneurs intermodaux
▪ XVIIe siècle : Volonté de standardiser le transport des marchandises
▪ Boîte en bois de taille uniforme pour transporter le charbon
(Angleterre)
▪ 1933 : standardisation des fameuses boîtes métalliques
▪ Transporteur : s’occupe simplement de charger les conteneurs sur le
bateau (gain de temps, d’argent, automatisation)
Dans le monde
I.T
C’est quoi Docker ? | Dive into containers | Conclusion
8
Disclaimer
Dive into containers
C’est quoi un container ?
En fait un container logiciel n’existe pas !
Assemblage de primitives systèmes/technologies dans le noyau Linux
=> renforcer l’isolation entre les processus sur le système
C’est quoi alors ?
C’est quoi Docker ? | Dive into containers | Conclusion
9
Système
Dive into containers
C’est quoi un container ?
Ensemble de mécanismes intimement liés au noyau du système
=> les containers Linux ne fonctionnent que sur Linux
=> les containers Windows ne fonctionnent que sur Windows
Histoire
▪ 1979 (UNIX 7) : notions de container avec chroot
▪ 2000 : BSD Jail
▪ 2004 : Zones Solaris
▪ 2006 : OpenVZ
▪ 2008 : LXC (Canonical)
▪ 2013 : Docker
Inconvénient Difficile à utiliser et à administrer
Apports de
Docker
Apporte un ensemble d’outils facile à utiliser en CLI + images
composables et réutilisables + registry (Docker Hub)
C’est quoi Docker ? | Dive into containers | Conclusion
10
Dive into containers
Comment ça marche : les Linux Namespaces
C’est quoi Docker ? | Dive into containers | Conclusion
11
Dive into containers
Comment ça marche : les Linux Namespaces
Noyau
Matériel
ProcessusProcessus Processus
Namespaces
mount
user
ipc
net
pid
uts
cgroup
s
C’est quoi Docker ? | Dive into containers | Conclusion
12
Dive into containers
Comment ça marche : les Linux Namespaces (PID)
C’est quoi Docker ? | Dive into containers | Conclusion
13
Dive into containers
Comment ça marche : les Linux Namespaces (mount)
C’est quoi Docker ? | Dive into containers | Conclusion
14
Dive into containers
Comment ça marche : les Linux Namespaces (net)
C’est quoi Docker ? | Dive into containers | Conclusion
15
Dive into containers
Comment ça marche : les Control Groups
Noyau
Matériel
ProcessusProcessus Processus
Namespacescontrol groups
C’est quoi Docker ? | Dive into containers | Conclusion
16
Dive into containers
Comment ça marche : Seccomp et SELinux/AppArmor
Noyau
Matériel
ProcessusProcessus
Processus
Namespacescontrol groups
seccomp
SELinux/AppArmor
C’est quoi Docker ? | Dive into containers | Conclusion
17
Dive into containers
Fonctionnement de Docker : Architecture
C’est quoi Docker ? | Dive into containers | Conclusion
18
Dive into containers
Fonctionnement de Docker : les images
Ce n’est pas un OS Linux !
=> Ensemble de binaires propres à une distribution Linux
C’est quoi Docker ? | Dive into containers | Conclusion
19
Dive into containers
Fonctionnement de Docker : le COW et les volumes
C’est quoi Docker ? | Dive into containers | Conclusion
Copy-on-write Volumes
20
Dive into containers
Et la virtualisation alors ? VM vs containers
C’est quoi Docker ? | Dive into containers | Conclusion
21
VM légère ?
Dive into containers
Et la virtualisation alors ? VM vs containers
En profondeur
Ressemble à une VM légère vue de loin :
▪ Connexion SSH (pas bien) ou shell interactif possible (c’est mieux)
▪ Voit ses propres processus uniquement
▪ Dispose d’une interface réseau
▪ Possibilité d’installer des packages
▪ Possibilité de démarrer des services
Ce n’est absolument pas une VM !
▪ Utilise le noyau (+modules) de l’hôte
▪ Ne peut pas booter un OS différent de l’hôte
▪ Processus du container visibles depuis l’hôte
▪ Aucune conscience des limitations de ressources par les cgroups
(attention à l’OOM Killer)
=> L’isolation est moindre !
DevOps
▪ Changement d’approche : concept du “Pets vs. Cattle”
▪ VMs : votre chat/chien - containers : du bétail
C’est quoi Docker ? | Dive into containers | Conclusion
22
Dive into containers
Et la virtualisation alors ? VM vs containers
C’est quoi Docker ? | Dive into containers | Conclusion
VMs
Containers
23
Dive into containers
C’est quoi Docker ? | Dive into containers | Conclusion
24
Conclusion
C’est quoi Docker ? | Dive into containers | Conclusion
25
Docker
Conclusion
Les containers aujourd’hui, l’écosystème et le futur
Disponible sur Linux, Windows (natif et non natif) et MacOS (non natif)
=> Bientôt sur Windows Subsystem for Linux 2 (micro-vm + support Docker)
Ecosystème
Autres
implémentations
▪ Titanesque : nombreux projets autour de Docker et Kubernetes
▪ Side-projects et outils tiers : moby project, RancherLabs
▪ Utilisation massive dans le cloud : AWS, Azure, GCP, Alibaba Cloud...
▪ Orchestration : Google Kubernetes, Red Hat OpenShift
▪ LXC + LXD (facilite l’utilisation de LXC)
▪ Red Hat Podman : container runtime par défaut sur RHEL 8
▪ CRI-O : container runtime pour Kubernetes
▪ CoreOS rkt, systemd-nspawn, OpenVZ...
Futur
C’est quoi Docker ? | Dive into containers | Conclusion
▪ Gros travaux autour de l’orchestration (écosystème Kubernetes)
▪ Unikernels ? (MirageOS + Xen)
26
Conclusion
Les containers aujourd’hui, l’écosystème et le futur
C’est quoi Docker ? | Dive into containers | Conclusion
27
LISE
Conclusion
Si vous en voulez davantage !
Conférences A5 en Janvier 2019 : conférence autour des containers
(moi-même)
Veille
technologique
▪ Conférences sur le web (YouTube) : Devoxx, Breizh Camp, GDG
France, DockerCon, Paris Container Day
▪ Votre curiosité…et surtout, expérimentez !
C’est quoi Docker ? | Dive into containers | Conclusion
28
Conclusion
Si vous en voulez davantage !
C’est quoi Docker ? | Dive into containers | Conclusion
Chaine YouTube : Devoxx FR
29
Conclusion
Si vous en voulez davantage !
C’est quoi Docker ? | Dive into containers | Conclusion
Chaine YouTube : Devoxx FR
30
Conclusion
Si vous en voulez davantage !
C’est quoi Docker ? | Dive into containers | Conclusion
Chaine YouTube : DockerCon
31
Conclusion
Si vous en voulez davantage !
C’est quoi Docker ? | Dive into containers | Conclusion
Chaine YouTube : VMware Cloud Native Apps
32
Conclusion
Si vous en voulez davantage !
C’est quoi Docker ? | Dive into containers | Conclusion
33
Merci de votre attention !

Contenu connexe

Tendances

Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
微服務對IT人員的衝擊
微服務對IT人員的衝擊微服務對IT人員的衝擊
微服務對IT人員的衝擊Philip Zheng
 
SCUGJ第29回勉強会:Introducing Azure Arc enabled VMware vSphere
SCUGJ第29回勉強会:Introducing Azure Arc enabled VMware vSphereSCUGJ第29回勉強会:Introducing Azure Arc enabled VMware vSphere
SCUGJ第29回勉強会:Introducing Azure Arc enabled VMware vSpherewind06106
 
Ws2012フェールオーバークラスタリングdeep dive 130802
Ws2012フェールオーバークラスタリングdeep dive 130802Ws2012フェールオーバークラスタリングdeep dive 130802
Ws2012フェールオーバークラスタリングdeep dive 130802wintechq
 
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)충섭 김
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker ComposeAjeet Singh Raina
 
Journey to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshiftJourney to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshiftYusuf Hadiwinata Sutandar
 
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートOracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートオラクルエンジニア通信
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.ioNicolas Hennion
 
Oracle GoldenGate for Big Data 12.2 セットアップガイド
Oracle GoldenGate for Big Data 12.2 セットアップガイドOracle GoldenGate for Big Data 12.2 セットアップガイド
Oracle GoldenGate for Big Data 12.2 セットアップガイドオラクルエンジニア通信
 
Introduction to Tokyo Products
Introduction to Tokyo ProductsIntroduction to Tokyo Products
Introduction to Tokyo ProductsMikio Hirabayashi
 
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデートOracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデートオラクルエンジニア通信
 
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018Alexis Ducastel
 
Introduction au Cloud Computing
Introduction au Cloud Computing Introduction au Cloud Computing
Introduction au Cloud Computing FICEL Hemza
 
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)Trainocate Japan, Ltd.
 
Kernel load-balancing for Docker containers using IPVS
Kernel load-balancing for Docker containers using IPVSKernel load-balancing for Docker containers using IPVS
Kernel load-balancing for Docker containers using IPVSDocker, Inc.
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春VerMasahito Zembutsu
 

Tendances (20)

Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Intro docker
Intro dockerIntro docker
Intro docker
 
微服務對IT人員的衝擊
微服務對IT人員的衝擊微服務對IT人員的衝擊
微服務對IT人員的衝擊
 
SCUGJ第29回勉強会:Introducing Azure Arc enabled VMware vSphere
SCUGJ第29回勉強会:Introducing Azure Arc enabled VMware vSphereSCUGJ第29回勉強会:Introducing Azure Arc enabled VMware vSphere
SCUGJ第29回勉強会:Introducing Azure Arc enabled VMware vSphere
 
Ws2012フェールオーバークラスタリングdeep dive 130802
Ws2012フェールオーバークラスタリングdeep dive 130802Ws2012フェールオーバークラスタリングdeep dive 130802
Ws2012フェールオーバークラスタリングdeep dive 130802
 
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker Compose
 
Journey to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshiftJourney to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshift
 
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートOracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
 
Oracle GoldenGate for Big Data 12.2 セットアップガイド
Oracle GoldenGate for Big Data 12.2 セットアップガイドOracle GoldenGate for Big Data 12.2 セットアップガイド
Oracle GoldenGate for Big Data 12.2 セットアップガイド
 
Introduction to Tokyo Products
Introduction to Tokyo ProductsIntroduction to Tokyo Products
Introduction to Tokyo Products
 
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデートOracle Cloud Infrastructure:2021年6月度サービス・アップデート
Oracle Cloud Infrastructure:2021年6月度サービス・アップデート
 
Oracle GoldenGate入門
Oracle GoldenGate入門Oracle GoldenGate入門
Oracle GoldenGate入門
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
Fonctionnalites et performances des cni pour Kubernetes - devops d-day 2018
 
Introduction au Cloud Computing
Introduction au Cloud Computing Introduction au Cloud Computing
Introduction au Cloud Computing
 
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)
Azure AD DSドメインに仮想マシンを参加させる (トレノケ雲の会 mod1)
 
Kernel load-balancing for Docker containers using IPVS
Kernel load-balancing for Docker containers using IPVSKernel load-balancing for Docker containers using IPVS
Kernel load-balancing for Docker containers using IPVS
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
 

Similaire à Vulgarisation de la technologie de containers Docker

Docker & son ecosystème
Docker & son ecosystèmeDocker & son ecosystème
Docker & son ecosystèmeAymen EL Amri
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?ALTER WAY
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ? Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ? ALTER WAY
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptxAbdellahELMAMOUN
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Arthur Lutz
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinLudovic Piot
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftArthur Lutz
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...adri1s
 
Devops d-day 2017 docker openstack docker
Devops d-day 2017  docker openstack dockerDevops d-day 2017  docker openstack docker
Devops d-day 2017 docker openstack dockerAlexis Ducastel
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerNizar GARRACHE
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugamine17157
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapresLaurent Tardif
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalitéZenika
 
Afterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et DockerAfterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et DockerJulien Chable
 

Similaire à Vulgarisation de la technologie de containers Docker (20)

Docker & son ecosystème
Docker & son ecosystèmeDocker & son ecosystème
Docker & son ecosystème
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ? Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 
Intro to docker
Intro to dockerIntro to docker
Intro to docker
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
 
What is Docker
What is Docker What is Docker
What is Docker
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shift
 
Be zend docker
Be zend dockerBe zend docker
Be zend docker
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 
Devops d-day 2017 docker openstack docker
Devops d-day 2017  docker openstack dockerDevops d-day 2017  docker openstack docker
Devops d-day 2017 docker openstack docker
 
Geek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop DockerGeek Time Mars 2017 : Workshop Docker
Geek Time Mars 2017 : Workshop Docker
 
docker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyugdocker-workshop-by-rbk.pdf jhuhiuguigugyug
docker-workshop-by-rbk.pdf jhuhiuguigugyug
 
docker.pdf
docker.pdfdocker.pdf
docker.pdf
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalité
 
Afterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et DockerAfterworks @Nouméa - DevOps, approche par container et Docker
Afterworks @Nouméa - DevOps, approche par container et Docker
 

Vulgarisation de la technologie de containers Docker

  • 1. docker run florian/presentation:A4 Docker et le monde des containers logiciels (v2) Lundi 24 Juin 2019
  • 2. 1 Florian Bobinid $PRESENTER whoami A4 - Futur ingénieur systèmes Linux / DevOps
  • 3. 2 FROM C’est quoi Docker ? Son impact dans le monde IT ? RUN C’est quoi un container logiciel ? Comment ça marche ? RUN Le fonctionnement de Docker (client, images, COW, volumes) RUN Et la virtualisation alors ? ENV conclusion=”Les containers aujourd’hui, l’écosystème et le futur” Introduction Dive into containers Le Dockerfile de la présentation Conclusion
  • 4. 3 La définition de base Histoire C’est quoi Docker ? Présentation globale Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur isolé, qui pourra être exécuté sur n'importe quel serveur - 451 Research ▪ Silicon Valley : entreprise française - dotCloud (PaaS) ▪ Fondée par Solomon Hykes (Epitech Lille) ▪ Projet Docker devenu Open-Source en 2013 ▪ Devenue Docker Inc. depuis 2013 La technologie ■ Utilise un ensemble de technologies open-source ■ Développée en Golang (Google) ■ Historiquement : utilisait une API au dessus de LXC ■ Maintenant : libcontainer => runC (standardisé) ■ Docker est désormais un standard dans le monde des containers (Open Container Initiative) C’est quoi Docker ? | Dive into containers | Conclusion
  • 5. 4 C’est quoi Docker ? Son impact dans le monde IT C’est quoi Docker ? | Dive into containers | Conclusion
  • 6. 5 C’est quoi Docker ? L’impact dans le monde IT C’est quoi Docker ? | Dive into containers | Conclusion
  • 7. 6 Dive into containers C’est quoi Docker ? | Dive into containers | Conclusion
  • 8. 7 Analogie Dive into containers C’est quoi un container ? Même principe que les conteneurs intermodaux ▪ XVIIe siècle : Volonté de standardiser le transport des marchandises ▪ Boîte en bois de taille uniforme pour transporter le charbon (Angleterre) ▪ 1933 : standardisation des fameuses boîtes métalliques ▪ Transporteur : s’occupe simplement de charger les conteneurs sur le bateau (gain de temps, d’argent, automatisation) Dans le monde I.T C’est quoi Docker ? | Dive into containers | Conclusion
  • 9. 8 Disclaimer Dive into containers C’est quoi un container ? En fait un container logiciel n’existe pas ! Assemblage de primitives systèmes/technologies dans le noyau Linux => renforcer l’isolation entre les processus sur le système C’est quoi alors ? C’est quoi Docker ? | Dive into containers | Conclusion
  • 10. 9 Système Dive into containers C’est quoi un container ? Ensemble de mécanismes intimement liés au noyau du système => les containers Linux ne fonctionnent que sur Linux => les containers Windows ne fonctionnent que sur Windows Histoire ▪ 1979 (UNIX 7) : notions de container avec chroot ▪ 2000 : BSD Jail ▪ 2004 : Zones Solaris ▪ 2006 : OpenVZ ▪ 2008 : LXC (Canonical) ▪ 2013 : Docker Inconvénient Difficile à utiliser et à administrer Apports de Docker Apporte un ensemble d’outils facile à utiliser en CLI + images composables et réutilisables + registry (Docker Hub) C’est quoi Docker ? | Dive into containers | Conclusion
  • 11. 10 Dive into containers Comment ça marche : les Linux Namespaces C’est quoi Docker ? | Dive into containers | Conclusion
  • 12. 11 Dive into containers Comment ça marche : les Linux Namespaces Noyau Matériel ProcessusProcessus Processus Namespaces mount user ipc net pid uts cgroup s C’est quoi Docker ? | Dive into containers | Conclusion
  • 13. 12 Dive into containers Comment ça marche : les Linux Namespaces (PID) C’est quoi Docker ? | Dive into containers | Conclusion
  • 14. 13 Dive into containers Comment ça marche : les Linux Namespaces (mount) C’est quoi Docker ? | Dive into containers | Conclusion
  • 15. 14 Dive into containers Comment ça marche : les Linux Namespaces (net) C’est quoi Docker ? | Dive into containers | Conclusion
  • 16. 15 Dive into containers Comment ça marche : les Control Groups Noyau Matériel ProcessusProcessus Processus Namespacescontrol groups C’est quoi Docker ? | Dive into containers | Conclusion
  • 17. 16 Dive into containers Comment ça marche : Seccomp et SELinux/AppArmor Noyau Matériel ProcessusProcessus Processus Namespacescontrol groups seccomp SELinux/AppArmor C’est quoi Docker ? | Dive into containers | Conclusion
  • 18. 17 Dive into containers Fonctionnement de Docker : Architecture C’est quoi Docker ? | Dive into containers | Conclusion
  • 19. 18 Dive into containers Fonctionnement de Docker : les images Ce n’est pas un OS Linux ! => Ensemble de binaires propres à une distribution Linux C’est quoi Docker ? | Dive into containers | Conclusion
  • 20. 19 Dive into containers Fonctionnement de Docker : le COW et les volumes C’est quoi Docker ? | Dive into containers | Conclusion Copy-on-write Volumes
  • 21. 20 Dive into containers Et la virtualisation alors ? VM vs containers C’est quoi Docker ? | Dive into containers | Conclusion
  • 22. 21 VM légère ? Dive into containers Et la virtualisation alors ? VM vs containers En profondeur Ressemble à une VM légère vue de loin : ▪ Connexion SSH (pas bien) ou shell interactif possible (c’est mieux) ▪ Voit ses propres processus uniquement ▪ Dispose d’une interface réseau ▪ Possibilité d’installer des packages ▪ Possibilité de démarrer des services Ce n’est absolument pas une VM ! ▪ Utilise le noyau (+modules) de l’hôte ▪ Ne peut pas booter un OS différent de l’hôte ▪ Processus du container visibles depuis l’hôte ▪ Aucune conscience des limitations de ressources par les cgroups (attention à l’OOM Killer) => L’isolation est moindre ! DevOps ▪ Changement d’approche : concept du “Pets vs. Cattle” ▪ VMs : votre chat/chien - containers : du bétail C’est quoi Docker ? | Dive into containers | Conclusion
  • 23. 22 Dive into containers Et la virtualisation alors ? VM vs containers C’est quoi Docker ? | Dive into containers | Conclusion VMs Containers
  • 24. 23 Dive into containers C’est quoi Docker ? | Dive into containers | Conclusion
  • 25. 24 Conclusion C’est quoi Docker ? | Dive into containers | Conclusion
  • 26. 25 Docker Conclusion Les containers aujourd’hui, l’écosystème et le futur Disponible sur Linux, Windows (natif et non natif) et MacOS (non natif) => Bientôt sur Windows Subsystem for Linux 2 (micro-vm + support Docker) Ecosystème Autres implémentations ▪ Titanesque : nombreux projets autour de Docker et Kubernetes ▪ Side-projects et outils tiers : moby project, RancherLabs ▪ Utilisation massive dans le cloud : AWS, Azure, GCP, Alibaba Cloud... ▪ Orchestration : Google Kubernetes, Red Hat OpenShift ▪ LXC + LXD (facilite l’utilisation de LXC) ▪ Red Hat Podman : container runtime par défaut sur RHEL 8 ▪ CRI-O : container runtime pour Kubernetes ▪ CoreOS rkt, systemd-nspawn, OpenVZ... Futur C’est quoi Docker ? | Dive into containers | Conclusion ▪ Gros travaux autour de l’orchestration (écosystème Kubernetes) ▪ Unikernels ? (MirageOS + Xen)
  • 27. 26 Conclusion Les containers aujourd’hui, l’écosystème et le futur C’est quoi Docker ? | Dive into containers | Conclusion
  • 28. 27 LISE Conclusion Si vous en voulez davantage ! Conférences A5 en Janvier 2019 : conférence autour des containers (moi-même) Veille technologique ▪ Conférences sur le web (YouTube) : Devoxx, Breizh Camp, GDG France, DockerCon, Paris Container Day ▪ Votre curiosité…et surtout, expérimentez ! C’est quoi Docker ? | Dive into containers | Conclusion
  • 29. 28 Conclusion Si vous en voulez davantage ! C’est quoi Docker ? | Dive into containers | Conclusion Chaine YouTube : Devoxx FR
  • 30. 29 Conclusion Si vous en voulez davantage ! C’est quoi Docker ? | Dive into containers | Conclusion Chaine YouTube : Devoxx FR
  • 31. 30 Conclusion Si vous en voulez davantage ! C’est quoi Docker ? | Dive into containers | Conclusion Chaine YouTube : DockerCon
  • 32. 31 Conclusion Si vous en voulez davantage ! C’est quoi Docker ? | Dive into containers | Conclusion Chaine YouTube : VMware Cloud Native Apps
  • 33. 32 Conclusion Si vous en voulez davantage ! C’est quoi Docker ? | Dive into containers | Conclusion
  • 34. 33 Merci de votre attention !