Création et Administration
des Conteneurs Docker
Présenté par : JADLI AISSAM
SÉANCE 8
1
SOMMAIRE
❖ Introduction
❖ Intérêt de la Conteneurisation
❖ Présentation de Docker
❖ Images et Conteneurs Docker
Mr. JADLI AISSAM 2
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Introduction
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 :
✔ 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.
Mr. JADLI AISSAM 3
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Introduction
les hyperviseurs de machines virtuelles
reposent sur une émulation du hardware, et
requièrent donc beaucoup de puissance de
calcul.
Mr. JADLI AISSAM 4
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Introduction
Pour remédier à ce problème, de
nombreuses firmes se tournent vers
la Conteneurisation comme une
solution alternative.
Mr. JADLI AISSAM 5
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Problématique
Mr. JADLI AISSAM 6
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Problématique
Solution ?? Mr. JADLI AISSAM 7
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Analogie de la Problématique
Mr. JADLI AISSAM 8
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Analogie de la Problématique
Mr. JADLI AISSAM 9
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Problématique : Solution de l’Analogie
Mr. JADLI AISSAM 10
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Problématique : Solution de Analogie
Mr. JADLI AISSAM 11
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Solution
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ù .
Mr. JADLI AISSAM 12
Introduction Conteneurisation Présentation Docker Images et Conteneurs
La Conteneurisation
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.
Mr. JADLI AISSAM 13
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Linux Containers (LXC)
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.
Mr. JADLI AISSAM 14
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Présentation de Docker
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 »
Mr. JADLI AISSAM 15
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Popularité
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.
Mr. JADLI AISSAM 16
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Architecture
Mr. JADLI AISSAM 17
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Architecture
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.
Mr. JADLI AISSAM 18
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Alternatives
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
Mr. JADLI AISSAM 19
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Environnement de Travail
Pour utiliser Docker sur votre Système :
❑ Télécharger et Installer Docker Desktop (Mac/Windows) sur le site Web Officiel :
[Link]
❑ Télécharger et installer sur Linux en utilisant les guides suivants :
- Ubuntu : [Link]
- CentOS : [Link]
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.
Mr. JADLI AISSAM 20
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Environnement de Travail
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
Mr. JADLI AISSAM 21
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Environnement de Travail
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
Mr. JADLI AISSAM 22
TRAVAUX PRATIQUES
Mr. JADLI AISSAM 23
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Commandes Docker
❑ 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
Mr. JADLI AISSAM 24
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Image Docker
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.
Mr. JADLI AISSAM 25
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Image Docker
Mr. JADLI AISSAM 26
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Image Docker
Mr. JADLI AISSAM 27
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Image Docker
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.
Mr. JADLI AISSAM 28
Introduction Conteneurisation Présentation Docker Images et Conteneurs
La commande [ docker image ]
❑ 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
Mr. JADLI AISSAM 29
Introduction Conteneurisation Présentation Docker Images et Conteneurs
La commande [ docker image ]
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
Mr. JADLI AISSAM 30
Introduction Conteneurisation Présentation Docker Images et Conteneurs
La commande [ docker container]
❑ 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
Mr. JADLI AISSAM 31
Introduction Conteneurisation Présentation Docker Images et Conteneurs
La commande [ docker container]
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 -> [Link]:8089 ]
Mr. JADLI AISSAM 32
Introduction Conteneurisation Présentation Docker Images et Conteneurs
La Commande [ docker run ]
❑ 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
Mr. JADLI AISSAM 33
Introduction Conteneurisation Présentation Docker Images et Conteneurs
Commandes Docker
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
Mr. JADLI AISSAM 34
TRAVAUX PRATIQUES
Mr. JADLI AISSAM 35