Découverte de Docker
Notions théoriques
C'est quoi Docker ?
Docker est une plateforme qui permet de mettre une application dans un conteneur.
Un conteneur est comme une mini VM qui contient un seul service.
Un conteneur permet d'isoler chaque service, dans leur conteneur dédié :
- le serveur Web,
- la base de données,
- etc.
Chaque conteneur peut être relié aux autres par des réseaux virtuels.
Il est possible de monter (partager) des volumes de disque de la machine hôte dans un conteneur.
Un grand avantage de Docker est la possibilité d'empaqueter chaque conteneur sous la forme d'une image.
L'image Docker peut être stocker localement ou sur le Docker Hub.
Le Docker Hub est un site Web où de nombreuses images sont publiées et mises à jour régulièrement.
Docker s'exécute sur le système d'exploitation hôte et utilise les fonctionnalités de l'OS pour isoler les processus et contrôler les ressources.
Différences entre Docker et les VMs
-
Isolation :
- Docker : Conteneurs légers partageant le noyau de l'hôte.
- VM : Isolation complète avec un OS dédié pour chaque VM.
-
Efficacité des ressources :
- Docker : Démarrage rapide et faible utilisation des ressources.
- VM : Démarrage plus lent et utilisation accrue des ressources.
-
Portabilité :
- Docker : Très portable, indépendant de l'environnement.
- VM : Moins portable, dépend de l'hyperviseur et du matériel.
-
Scalabilité :
-
Docker : Les conteneurs peuvent être créés et détruits en quelques secondes, ce qui facilite l'adaptation rapide aux changements de charge de travail.
-
VM : Les VM s'adaptent moins facilement à des ajustements fréquents de capacité car elles sont de taille plus importante et leur temps de démarrage est plus long.
-
Docker privilégie la portabilité et l'efficacité, tandis que les VMs offrent une isolation complète.
Docker permet de s'assurer que l'environnement de votre application est le même, peu importe où elle est déployée.
Comment fonctionne Docker ?
Docker utilise une architecture client/serveur.
Le client Docker envoie des commandes au démon Docker, qui gère les conteneurs.
Voici les étapes de base pour utiliser Docker :
-
Téléchargement ou création d'une image : Une image Docker est un modèle en lecture seule à partir de laquelle les conteneurs sont créés. Les images peuvent être téléchargées ou créées à partir d'un
Dockerfile
, qui contient les instructions pour assembler l'image. -
Exécution d'un conteneur : Une fois l'image téléchargée ou créée, vous pouvez exécuter un conteneur à partir de cette image. Le conteneur est une instance de l'image qui fonctionne de manière isolée.
attentionSi aucun processus n'est démarré dans le conteneur, alors le conteneur s'arrête automatiquement.
-
Gestion des conteneurs : Docker fournit des commandes pour :
- démarrer,
- arrêter,
- supprimer,
- et accéder aux conteneur en cours d'exécution.
Installation de Docker
Installer Docker sous votre OS
Installer Docker sous Debian
Voici la procédure recommandée pour installé Docker sur une machine Debian : https://docs.docker.com/engine/install/debian/.
Il est recommandé de consulter la documentation officielle pour les instructions les plus récentes.
Il est possible d'installer très facilement Docker à l'aide des commandes suivantes :
apt install curl -y
curl -fsSL https://get.docker.com | sh
Installer Docker sous Windows
Voici les étapes pour installer "Docker Desktop" sous Windows :
-
Téléchargez "Docker Desktop" depuis le site officiel : https://www.docker.com/products/docker-desktop/ et suivez les instructions d'installation.
-
Une fois installé, ouvrez "Docker Desktop" pour voir l'interface graphique qui montre les conteneurs en cours d'exécution.
Ajouter votre utilisateur dans le groupe docker
Après l'installation, il est préconisé d'ajouter votre utilisateur au groupe docker
pour pouvoir exécuter les commandes Docker sans sudo
:
sudo adduser votre_utilisateur docker
ou
sudo usermod -aG docker votre_utilisateur
Après avoir ajouté votre utilisateur au groupe docker
, vous devrez vous déconnecter et vous reconnecter
pour que ces changements prennent effet.
Tester l'installation
docker --version
Exemple pratique
Après avoir installé Docker sur votre machine Debian,
nous pouvons télécharger une image Docker appelée hello-world
et créer notre premier conteneur.
L'image Docker hello-world
est très légère et utilisée pour tester le bon fonctionnement de notre installation.
Pour créer un conteneur à partir de l'image hello-world
et démarrer ce conteneur, il suffit de saisir cette simple commande :
docker run hello-world
Cela va :
- créer un conteneur à partir de l'image
hello-world
- et afficher un message de bienvenue.
Avec les commandes :
docker --version
nous vérifions que Docker est bien installé.docker run hello-world
nous confirmons que notre installation est bien opérationnelle.
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
-
Installez Docker
-
Ajouter votre utilisateur au groupe
docker
-
Téléchargez l'image
hello-world
, créez un conteneur avec cette image et démarrez ce conteneur.Vous devez voir un message de bienvenue en anglais
Hello from Docker!
qui indique que Docker fonctionne correctement sur votre machine.