Aller au contenu principal

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.

info

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

  1. Isolation :

    • Docker : Conteneurs légers partageant le noyau de l'hôte.
    • VM : Isolation complète avec un OS dédié pour chaque VM.
  2. Efficacité des ressources :

    • Docker : Démarrage rapide et faible utilisation des ressources.
    • VM : Démarrage plus lent et utilisation accrue des ressources.
  3. Portabilité :

    • Docker : Très portable, indépendant de l'environnement.
    • VM : Moins portable, dépend de l'hyperviseur et du matériel.
  4. 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.

remarque

Docker privilégie la portabilité et l'efficacité, tandis que les VMs offrent une isolation complète.

astuce

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 :

  1. 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.

  2. 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.

    attention

    Si aucun processus n'est démarré dans le conteneur, alors le conteneur s'arrête automatiquement.

  3. 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/.

remarque

Il est recommandé de consulter la documentation officielle pour les instructions les plus récentes.

astuce

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 :

  1. Téléchargez "Docker Desktop" depuis le site officiel : https://www.docker.com/products/docker-desktop/ et suivez les instructions d'installation.

  2. 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
astuce

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.

info

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.
remarque

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


Qu'est-ce qu'une image Docker ?


Quelle est la commande pour créer un nouveau conteneur à partir d'une image ?


Qu'est-ce qu'un volume Docker ?


Quelle est la commande pour lister tous les conteneurs en cours d'exécution ?


Qu'est-ce qu'un Dockerfile ?


Quelle est la commande pour supprimer un conteneur ?


Qu'est-ce qu'un réseau Docker ?


Quelle est la commande pour créer un nouveau réseau Docker ?


Quelle commande utilisez-vous pour vérifier que Docker a été installé correctement sur votre système Debian ?


Quel est le principal avantage des conteneurs Docker par rapport aux machines virtuelles en termes de démarrage ?


Quel est le rôle des images dans Docker ?


Pourquoi est-il recommandé d'ajouter votre utilisateur au groupe 'docker' après l'installation de Docker ?


Quelle commande Docker crée et démarre un conteneur à partir d'une image ?


Dans quel scénario utiliseriez-vous Docker plutôt qu'une machine virtuelle ?


Quel est l'avantage de l'utilisation des conteneurs Docker en termes de portabilité ?



TP pour réfléchir et résoudre des problèmes

  1. Installez Docker

  2. Ajouter votre utilisateur au groupe docker

  3. 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.