Vulgarisation de la technologie de containers Docker à des étudiants en informatique du CESI Arras de différents niveaux (promotions de 1ere année, 2e année et 4e année).
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
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
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
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
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
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)
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