Docker Leçon 1
Pourquoi Docker ?
Images, conteneurs, registre : les trois idées de Docker, et ton premier conteneur.
À la fin de cette leçon, tu sauras
- Comprendre ce qu'est un conteneur, et ce qu'il n'est pas
- Distinguer une image d'un conteneur
- Lancer ses premiers conteneurs
« Chez moi, ça marche »
Un site PHP a besoin de PHP 8.3, de certaines extensions, d'une base de données dans la bonne version… Installer tout ça à la main sur chaque serveur est long, et deux sites qui veulent deux versions de PHP différentes se marchent dessus.
Docker range chaque application dans un conteneur : une boîte isolée qui contient le programme et tout ce dont il a besoin. Le même conteneur tourne à l'identique sur ton PC, sur le serveur de test et sur le serveur en ligne.
Les trois mots à connaître
- une image est un modèle figé, en lecture seule : « nginx 1.27 sur Alpine Linux », « PHP 8.3 avec FPM ». C'est la recette ;
- un conteneur est une image en train de tourner. On peut lancer dix conteneurs à partir de la même image. C'est le plat ;
- un registre est l'endroit où l'on télécharge les images. Le plus connu est Docker Hub.
Conteneur ou machine virtuelle ? Une machine virtuelle simule un ordinateur complet, avec son propre système. Un conteneur partage le noyau Linux du serveur : il démarre en une seconde et ne pèse que quelques mégaoctets.
Premier conteneur
docker run hello-world # télécharge l'image, crée un conteneur, l'exécute
docker run alpine echo "Bonjour" # un mini-Linux qui affiche Bonjour puis s'arrête
docker ps # les conteneurs EN MARCHE
docker ps -a # TOUS les conteneurs, même arrêtés
docker images # les images téléchargéesUn conteneur vit tant que son programme principal tourne. echo se termine tout de suite, donc le conteneur passe à l'état Exited (0) : 0 veut dire « terminé sans erreur ». Un serveur web, lui, tourne en continu : on le verra à la leçon suivante.
Sur ton serveur : on installe Docker avec sudo apt install docker.io (ou le paquet officiel docker-ce). Pour l'utiliser sans sudo, on ajoute son compte au groupe docker : sudo usermod -aG docker eleve. Ici, c'est déjà fait.
À retenir
- Une image est le modèle (la recette), un conteneur est une image qui tourne (le plat).
- Les images viennent d'un registre, en général Docker Hub.
- Un conteneur partage le noyau du serveur : plus léger et plus rapide qu'une machine virtuelle.
- Il vit tant que son programme principal tourne ;
Exited (0)= terminé sans erreur. docker ps(en marche),docker ps -a(tous),docker images.
Voir la fiche de révision de cette leçon (à imprimer ou à relire avant un contrôle)
À toi de jouer · Bonjour, Docker
Facile ✓ Réussi- vérifie la version de Docker ;
- lance le conteneur de test
hello-worldet lis son message ; - lance un conteneur
alpinequi afficheBonjour; - affiche tous les conteneurs, y compris ceux qui sont arrêtés ;
- affiche les images téléchargées.
Tape tes commandes ici ou dans le fichier à gauche : chaque commande tapée dans le terminal est ajoutée au fichier.
Consignes à réussir
- À faire : La version de Docker est affichée
- À faire : L'image hello-world est téléchargée
- À faire : Un conteneur alpine a affiché Bonjour
- À faire : Le conteneur alpine s'est terminé
- À faire : Tous les conteneurs sont affichés (docker ps -a)
- À faire : Les images sont affichées
Bravo, toutes les consignes sont réussies !
- Indice 1 :
docker --version, puisdocker run hello-world. - Indice 2 : La commande vient après le nom de l'image :
docker run alpine echo "Bonjour". - Indice 3 :
docker psne montre que les conteneurs en marche : ajoute-a. Puisdocker images.
Toujours bloqué ? Voir une solution
docker --version
docker run hello-world
docker run alpine echo "Bonjour"
docker ps -a
docker images