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.
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-fpmounode: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.yamlqui décrit plusieurs conteneurs et les lance ensemble. C'est ce que tu utiliseras tous les jours.
Explique Docker avec tes mots
Réponds par écrit, en une phrase chacune, sans remonter dans la page.
- Comment s'appelle le modèle figé qui contient PHP 8.4, et d'où vient-il ?
- Tu lances ce modèle trois fois. Qu'obtiens-tu trois fois ?
- Où doivent vivre les données d'une base PostgreSQL ?
- Pourquoi un conteneur démarre-t-il plus vite qu'une machine virtuelle ?
Voir la solution
- Une image. On la construit avec un Dockerfile, ou on la télécharge depuis un registre.
- Un conteneur.
- Dans un volume, sinon elles disparaissent avec le conteneur.
- Parce qu'il ne démarre pas de système complet : il partage le noyau de la machine hôte.