LANTORIANDocker, pas à pas

Chapitre 110 min1 exercice

Pourquoi Docker

Docker emballe une application avec tout ce dont elle a besoin pour tourner. Même boîte sur ton poste, sur celui d'un collègue et sur le serveur.

Le problème

Un projet Laravel a besoin d'une version précise de PHP, de certaines extensions, de PostgreSQL et de Redis. Le front Next.js a besoin d'une version précise de Node. Installer tout ça à la main sur chaque machine prend des heures, et il suffit d'une version différente pour que le projet casse.

C'est le fameux « chez moi, ça marche ». Docker le supprime : l'environnement est décrit dans des fichiers versionnés avec le code. Tout le monde lance exactement le même.

Conteneur ou machine virtuelle

Un conteneur ressemble à une petite machine virtuelle, mais il ne contient pas de système d'exploitation complet. Il partage le noyau de ta machine. C'est pour ça qu'il démarre en une seconde et pèse quelques dizaines de Mo.

Machines virtuelles : chaque application embarque un système complet. Plusieurs Go, démarrage en minutes.

Le vocabulaire

Six mots suffisent pour tout le guide.

Image
Un modèle figé, en lecture seule : un système minimal, les outils et le code. Par exemple php:8.4-fpm ou node:24.
Conteneur
Une image en train de tourner. On peut en lancer plusieurs à partir de la même image. On le jette sans regret.
Dockerfile
La recette texte qui fabrique une image, instruction par instruction.
Registre
L'endroit où les images sont stockées et téléchargées. Le plus connu est Docker Hub.
Volume
Un espace de stockage qui survit à la suppression du conteneur. Indispensable pour une base de données.
Compose
Un fichier compose.yaml qui décrit plusieurs conteneurs et les lance ensemble. C'est ce que tu utiliseras tous les jours.
Exercice

Explique Docker avec tes mots

Réponds par écrit, en une phrase chacune, sans remonter dans la page.

  1. Comment s'appelle le modèle figé qui contient PHP 8.4, et d'où vient-il ?
  2. Tu lances ce modèle trois fois. Qu'obtiens-tu trois fois ?
  3. Où doivent vivre les données d'une base PostgreSQL ?
  4. Pourquoi un conteneur démarre-t-il plus vite qu'une machine virtuelle ?
Voir la solution
  1. Une image. On la construit avec un Dockerfile, ou on la télécharge depuis un registre.
  2. Un conteneur.
  3. Dans un volume, sinon elles disparaissent avec le conteneur.
  4. Parce qu'il ne démarre pas de système complet : il partage le noyau de la machine hôte.
Échap