Docker : conteneurisez vos applis
Embarquez votre application et ses dépendances dans un environnement reproductible.
Où en êtes-vous avec cette notion ?
Une indication personnelle, enregistrée uniquement dans ce navigateur.
À lire ensuite
Le format café
L’essentiel à comprendre, le temps d’un café.
Envie de creuser ? Un cours plus complet vous attend juste après, à déplier sans quitter cette page.
Une boîte, pas un ordinateur complet
Une image décrit le système de fichiers et les paramètres nécessaires au lancement d’un programme. Un conteneur est une instance de cette image. Il partage le noyau de l’hôte dans un environnement isolé.
Le cycle essentiel
Vous écrivez un Dockerfile, construisez une image, puis lancez un conteneur. Gardez les données durables dans un volume ou un service externe : le conteneur doit pouvoir être remplacé.
docker build -t mon-app:dev .
docker run --rm -p 3000:3000 mon-app:dev
Trois pièges à éviter
- Un secret copié dans une couche de l’image reste exposé, même s’il est supprimé ensuite.
- Le port de l’application doit correspondre au port publié.
- Un conteneur n’est pas une sauvegarde de vos données.
Fiche mémo
Image : modèle immuable. Conteneur : processus isolé. Volume : données persistantes. Registry : distribution des images.
Et si on allait plus loin ?
Le café vous a donné les repères. Prenez maintenant le temps de comprendre les mécanismes et de pratiquer, si vous le souhaitez.
Aller plus loinConstruire une image et choisir où vivent les donnéesDévelopper le coursReplier le cours
Ce que vous saurez faire
Lire un Dockerfile, distinguer construction et exécution, puis décider quelles données peuvent disparaître avec un conteneur. Docker doit être installé et son moteur démarré pour cet atelier.
1. Construire une image minimale
Dans un nouveau dossier de test, créez index.html avec un titre et un paragraphe. Ajoutez ce fichier nommé exactement Dockerfile :
FROM nginx:stable-alpine
COPY index.html /usr/share/nginx/html/index.html
La première instruction choisit une image de base. La seconde ajoute votre page à l’image. Le tag utilisé ici est mobile : pour reproduire strictement une livraison, consignez le digest de l’image testée plutôt que de supposer que le tag désignera toujours le même contenu.
docker build -t cafe-web:atelier .
docker run --rm -p 127.0.0.1:8080:80 cafe-web:atelier
Ouvrez http://127.0.0.1:8080. Le port 8080 de votre ordinateur est relié au port 80 du conteneur, uniquement sur l’interface locale. Si 8080 est occupé, choisissez un autre port hôte. Arrêtez avec Ctrl+C ; --rm retire ensuite le conteneur.
Modifier le fichier local ne modifie pas cette image : reconstruisez puis relancez pour voir une nouvelle page. Ce découplage explique pourquoi « cela marche dans mon dossier » ne prouve pas que l’image livrée contient les bons fichiers.
Référence : écrire un Dockerfile.
2. Classer les données avant de lancer
Le code et les fichiers statiques peuvent appartenir à l’image. Les fichiers temporaires peuvent vivre dans le conteneur. Les documents déposés par des utilisateurs doivent survivre à son remplacement : utilisez un volume ou un stockage externe.
Un volume nommé a un cycle de vie distinct du conteneur. Il persiste après la suppression de celui-ci, mais n’est pas une sauvegarde : une suppression logique, une erreur applicative ou une perte du disque peuvent toujours détruire les données. Définissez séparément une procédure de sauvegarde et de restauration.
Référence : persister les données.
À vous de jouer
Votre application conserve les avatars dans son propre répertoire de fichiers. Vous remplacez le conteneur pour déployer une nouvelle image. Quel problème anticipez-vous ?
Correction commentée
Si les avatars existent seulement dans la couche inscriptible de l’ancien conteneur, le nouveau ne les retrouve pas. Il faut monter le stockage durable au chemin réellement utilisé par l’application. Testez en créant un fichier d’essai puis en remplaçant le conteneur, sans supprimer le volume.
Vous pouvez aussi vous arrêter ici. L’approfondissement est facultatif.
Les repères Cours Café
Pour aller à la source
Documentation de référence. Vérification éditoriale encore à effectuer.
Gardez une trace de cette idée.
Favoris, notes et progression seront disponibles après connexion du stockage distant.