SOMMAIRE
Mr. JADLI AISSAM2
❖ Introduction
❖ Intérêt de la Conteneurisation
❖ Présentation de Docker
❖ Images et Conteneurs Docker
3.
Introduction
Mr. JADLI AISSAM3
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Réduire les coûts dans une entreprise en diminuant le nombre de machines.
Lancer plusieurs environnements d’OS sur la même machine.
Les besoins en énergie sont atténués.
Les backups/restaurations sont simplifiés.
Isolation des systèmes les uns des autres.
Les machines virtuelles (VM) sont de plus en plus utilisées par les entreprises. Une VM est un
environnement de système d’exploitation ou d’application installé sur logiciel.
Elle permet à l’utilisateur de profiter de la même expérience que sur une machine physique, avec
plusieurs avantages :
4.
Introduction
Mr. JADLI AISSAM4
les hyperviseurs de machines virtuelles
reposent sur une émulation du hardware, et
requièrent donc beaucoup de puissance de
calcul.
Introduction Conteneurisation Présentation Docker Images et Conteneurs
5.
Introduction
Mr. JADLI AISSAM5
Pour remédier à ce problème, de
nombreuses firmes se tournent vers
la Conteneurisation comme une
solution alternative.
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Analogie de laProblématique
Mr. JADLI AISSAM 8
Introduction Conteneurisation Présentation Docker Images et Conteneurs
9.
Analogie de laProblématique
Mr. JADLI AISSAM 9
Introduction Conteneurisation Présentation Docker Images et Conteneurs
10.
Problématique : Solutionde l’Analogie
Mr. JADLI AISSAM 10
Introduction Conteneurisation Présentation Docker Images et Conteneurs
11.
Problématique : Solutionde Analogie
Mr. JADLI AISSAM 11
Introduction Conteneurisation Présentation Docker Images et Conteneurs
12.
Solution
Mr. JADLI AISSAM12
Le découplage Application / Environnement permet de
déployer des applications basées sur des conteneurs
facilement et de manière cohérente, que l'environnement
cible soit un centre de données privé, le Cloud public ou
même l'ordinateur portable personnel d'un développeur.
Cela donne aux développeurs la possibilité de créer des
environnements prévisibles qui sont isolés du reste des
applications et peuvent être exécutés n'importe où .
Introduction Conteneurisation Présentation Docker Images et Conteneurs
13.
La Conteneurisation
Mr. JADLIAISSAM 13
Les conteneurs sont une (autre) façon de faire tourner un système d’exploitation et une
application de manière isolée et virtualisée. À chaque démarrage, on part sur un nouvel
environnement tout neuf. Il est possible de faire tourner plusieurs containers sur une même
machine (host). Les containers offrent plusieurs bénéfices, à savoir :
❑ L’isolation
❑ la portabilité
❑ l’agilité
❑ L’isolation entre les Dev et les Ops.
Introduction Conteneurisation Présentation Docker Images et Conteneurs
14.
Linux Containers (LXC)
Mr.JADLI AISSAM 14
LXC est une interface en espace utilisateur pour les fonctionnalités des conteneurs intégrée
directement dans le noyau Linux. Grâce à une API puissante et à des outils simples, il
permet aux utilisateurs Linux de créer et de gérer facilement des conteneurs système ou
d'application.
Introduction Conteneurisation Présentation Docker Images et Conteneurs
15.
Présentation de Docker
Mr.JADLI AISSAM 15
Wikipédia définit Docker comme suivant :
un projet open-source qui automatise le déploiement d'applications logicielles à l'intérieur
de conteneurs en fournissant une couche supplémentaire d'abstraction et d'automatisation
de la virtualisation au niveau du système d' exploitation sur Linux.
En termes plus simples, Docker est un outil qui permet aux développeurs, administrateurs système,
etc. de déployer facilement leurs applications dans des conteneurs pour s'exécuter sur le système
d'exploitation hôte.
« Build, Ship, and Run Any App, Anywhere »
Introduction Conteneurisation Présentation Docker Images et Conteneurs
16.
Popularité
Mr. JADLI AISSAM16
La version 1.0 de Docker fut lancée en juin 2014, dans le but de faciliter l’utilisation des containers.
Très rapidement, la plateforme a rencontré un franc succès auprès des géants comme Oracle,
Amazon et Microsoft l’ont adopté, au même titre que presque toutes les entreprises du Cloud.
Aujourd’hui, selon les créateurs de Docker,
plus de 3,5 millions d’applications ont été
containerisées en utilisant cette technologie.
L’on compte pas moins de 37 milliards
d’applications containerisées téléchargées.
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Architecture
Mr. JADLI AISSAM18
L'architecture de Docker est divisée en trois parties :
❖ Host : contient le Daemon (processus) de Docker. C'est via celui-ci que nous allons pouvoir gérer les
conteneurs/images
❖ Client : C’est une application en lignes de commande qui va permettre la communication entre
l'utilisateur et le daemon présent dans le Host
❖ Registry : est un serveur permettant l'envoi, le stockage, et la récupération des images Docker
stockées dans un registre privé. Nous y trouvons aussi le Docker hub, qui met à disposition des images
prêtes à l'emploi, qu'elles soient vierges ou pour une utilisation spécifique dans un registre public.
Introduction Conteneurisation Présentation Docker Images et Conteneurs
19.
Alternatives
Mr. JADLI AISSAM19
Docker est de loin la plateforme de conteneurs la plus connue et la plus utilisée. Mais il existe
d'autres technologies dans le paysage des conteneurs, chacune avec ses propres approches et cas
d'utilisation.
LXC et LXD
runC
CoreOS Rocket (rkt)
OpenVZ
Introduction Conteneurisation Présentation Docker Images et Conteneurs
20.
Environnement de Travail
Mr.JADLI AISSAM 20
Pour utiliser Docker sur votre Système :
❑ Télécharger et Installer Docker Desktop (Mac/Windows) sur le site Web Officiel :
https://www.docker.com/products/docker-desktop
❑ Télécharger et installer sur Linux en utilisant les guides suivants :
- Ubuntu : https://docs.docker.com/engine/install/ubuntu/
- CentOS : https://docs.docker.com/engine/install/centos/
N.B : Les prérequis suivants sont requis pour exécution sur Windows 10 :
Windows 10 64-bit: Pro, Enterprise, or Education (Build 15063 or later).
Hyper-V et la fonctionnalité des conteneurs Windows doit être activée.
Introduction Conteneurisation Présentation Docker Images et Conteneurs
21.
Environnement de Travail
Mr.JADLI AISSAM 21
Pour consulter la version installée de Docker,
utilisez la commande :
docker --version
Pour tester le Fonctionnement de l’installation
Docker, lancez l’image hello-world en utilisant
la commande :
docker run hello-world
Introduction Conteneurisation Présentation Docker Images et Conteneurs
22.
Environnement de Travail
Mr.JADLI AISSAM 22
Pour consulter les images Docker disponibles en local, utilisez la commande :
docker image ls
Pour consulter les conteneurs Docker crées, utilisez la commande :
docker ps --all
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Commandes Docker
Mr. JADLIAISSAM 24
❑ Effacer un conteneur : docker rm [containerID]
❑ Effacer une Image: docker rmi [ImageID]
❑ Redémarrer un conteneur : docker restart [containerID]
❑ Envoyer des signaux à un conteneur : docker kill [containerID]
❑ Afficher les conteneurs actifs : docker ps
❑ Afficher les conteneurs en tâche de fond : docker ps -a
❑ Créer une image docker à partir d’un Dockerfile : docker build
Introduction Conteneurisation Présentation Docker Images et Conteneurs
25.
Image Docker
Mr. JADLIAISSAM 25
Une image Docker comprend les éléments nécessaires pour exécuter une
application en tant que conteneur - tels que le code, les fichiers de
configuration, les variables d'environnement, les bibliothèques et le
temps d'exécution. Si l'image est déployée dans un environnement
Docker, elle peut ensuite être exécutée en tant que conteneur Docker. La
commande docker run créera un conteneur à partir d'une image donnée.
Introduction Conteneurisation Présentation Docker Images et Conteneurs
26.
Image Docker
Mr. JADLIAISSAM 26
Introduction Conteneurisation Présentation Docker Images et Conteneurs
27.
Image Docker
Mr. JADLIAISSAM 27
Introduction Conteneurisation Présentation Docker Images et Conteneurs
28.
Image Docker
Mr. JADLIAISSAM 28
Une image Docker est composée de plusieurs couches. Un utilisateur compose chaque image Docker
pour inclure des bibliothèques système, des outils et d'autres fichiers et dépendances pour le code
exécutable. Les développeurs d'images peuvent
réutiliser des couches d'images statiques pour
différents projets. La réutilisation fait gagner
du temps, car un utilisateur n'a pas à tout
créer dans une image.
Introduction Conteneurisation Présentation Docker Images et Conteneurs
29.
La commande [docker image ]
Mr. JADLI AISSAM 29
❑ docker image build : crée une image à partir d'un Dockerfile.
❑ docker image inspect : affiche des informations sur une ou plusieurs images.
❑ docker image load : charge une image à partir d'une archive tar
❑ docker image prune : supprime les images inutilisées.
❑ docker image pull : extrait une image ou un référentiel d'un registre.
❑ docker image push : pousse une image ou un référentiel vers un registre.
❑ docker image rm : supprime une ou plusieurs images.
❑ docker image save : enregistre une ou plusieurs images dans une archive tar
Introduction Conteneurisation Présentation Docker Images et Conteneurs
30.
Mr. JADLI AISSAM30
Exemples
❖ docker images build
mkdir test && cd test
echo FROM debian:jessie > Dockerfile
docker build -t docker-test .
❖ docker images inspect 1d622ef86b13
❖ docker images prune
❖ docker images rm 6ab49
La commande [ docker image ]
Introduction Conteneurisation Présentation Docker Images et Conteneurs
31.
La commande [docker container]
Mr. JADLI AISSAM 31
❑ docker container attach : Attache le terminal local à un conteneur en cours d'exécution
❑ docker container exec : Exécuter une commande dans un conteneur en cours d'exécution
❑ docker container export : Exporte le système de fichiers d'un conteneur en tant qu'archive tar
❑ docker container prune : supprime les conteneurs inutilisées.
❑ docker container start : Démarrer un ou plusieurs conteneurs arrêtés.
❑ docker container ls : Liste des conteneurs
❑ docker container port : Liste les mappages de ports ou un mappage spécifique pour le conteneur
❑ docker container run : Exécuter une commande dans un nouveau conteneur
Introduction Conteneurisation Présentation Docker Images et Conteneurs
32.
Mr. JADLI AISSAM32
Exemples
❖ docker container ls –a
Résultat : [ Affiche la liste des conteneurs]
❖ docker container run -d -p 8089:80 nginx
Résultat : [ 0792d4835201 ]
❖ docker container exec -it 0792d4835201 bash
Résultat : [ root@0792d4835201:/# ]
❖ docker container port 0792d4835201
Résultat : [ 80/tcp -> 0.0.0.0:8089 ]
La commande [ docker container]
Introduction Conteneurisation Présentation Docker Images et Conteneurs
33.
La Commande [docker run ]
Mr. JADLI AISSAM 33
❑ Rôle : Démarrer un conteneur
❑ Syntaxe : docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
-i Garder STDIN ouvert, même si pas attaché
-t Allouer un pseudo-terminal
-p Permet de publier un conteneur, et accessible via une translation de port depuis le
serveur.
-d Active le mode daemon. Le conteneur sera actif et en tâche de fond
--name Pour identifier un conteneur par un nom au lieu d’un ID
--dns Pour définir un DNS personnalisé
--net="" Pour définir le mode réseau entre “Bridge”, “none”, “container:” et “host”
--add-host Modifie le contenu du fichier “hosts” en y ajoutant les valeurs spécifié
-v Permet de lier un dossier sur le serveur au conteneur
Introduction Conteneurisation Présentation Docker Images et Conteneurs
34.
Commandes Docker
Mr. JADLIAISSAM 34
Exemples
❖ docker run -i -t ubuntu:latest bash
❖ docker run -i -t -p 8080:80 ubuntu:latest /bin/bash
❖ docker run -d -p 2222:22 -e ROOT_PASS="mypass" tutum/ubuntu:trusty bash
Introduction Conteneurisation Présentation Docker Images et Conteneurs