Docker - Configuration de Node.js : Un Guide Pour Débutants
Salut à toi, aspirant(e)s développeur(euse)s ! Aujourd'hui, nous allons nous lancer dans un voyage passionnant à la découverte du monde de Docker et de Node.js. En tant que ton enseignant de quartier bienveillant, je suis là pour te guider à travers cette aventure pas à pas. Ne t'inquiète pas si tu es nouveau(e) en programmation – on va commencer par les bases et progresser étape par étape. Alors, prends une tasse de café (ou de thé, si c'est ton truc), et c'est parti !
Qu'est-ce que Docker ?
Avant de plonger dans les détails, parlons de Docker. Imagine que tu déménages dans une nouvelle maison. Au lieu de tout emballer dans des boîtes de formes et tailles différentes, que dirais-tu de mettre tous tes biens dans des conteneurs standardisés qui s'adaptent parfaitement à n'importe quel camion ou bateau ? C'est essentiellement ce que Docker fait pour les logiciels !
Docker est une plateforme qui permet de packager ton application et toutes ses dépendances dans une unité standardisée appelée un conteneur. Ces conteneurs peuvent s'exécuter de manière cohérente sur n'importe quel système, rendant ainsi plus simple le développement, l'expédition et l'exécution des applications.
Pourquoi Utiliser Docker avec Node.js ?
Tu te demandes peut-être : "Pourquoi me embêter avec Docker pour mon application Node.js ?" Eh bien, laisse-moi te raconter une petite histoire.
Il était une fois une développeuse nommée Sarah. Elle a développé une application Node.js fantastique sur son laptop. Ça marchait parfaitement ! Mais quand elle a essayé de le faire fonctionner sur le serveur de son équipe, il s'est planté. Le problème ? Des versions différentes de Node.js et quelques dépendances manquantes. Sarah a passé des jours à essayer de le réparer.
Si Sarah avait utilisé Docker, elle aurait pu éviter ce mal de tête. Docker garantit que ton application s'exécute dans le même environnement partout – que ce soit sur ton laptop, sur le bureau de ton collègue ou sur un serveur dans le cloud.
Configuration de Docker pour Node.js
Très bien, mettons les mains dans le cambouis et passons à la configuration réelle !
Étape 1 : Installer Docker
Première chose à faire, nous devons installer Docker sur notre machine. Rends-toi sur le site de Docker et télécharge Docker Desktop pour ton système d'exploitation. Suive les instructions d'installation, et tu seras prêt(e) à partir !
Étape 2 : Créer une Application Node.js
Créons une application Node.js simple à containeriser. Crée un nouveau dossier pour ton projet et navigue dedans :
mkdir mon-app-node
cd mon-app-node
Maintenant, créons un fichier package.json
simple :
npm init -y
Cette commande crée un fichier package.json
de base avec des valeurs par défaut. Ensuite, installons Express, un framework Node.js populaire :
npm install express
Maintenant, crée un fichier nommé app.js
et ajoute le code suivant :
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Bonjour, Docker !');
});
app.listen(port, () => {
console.log(`App en écoute sur http://localhost:${port}`);
});
Cette application simple crée un serveur web qui répond avec "Bonjour, Docker !" lorsque vous visitez l'URL racine.
Étape 3 : Créer un Dockerfile
Maintenant, venons à la partie passionnante – créer notre Dockerfile ! Un Dockerfile est comme une recette qui indique à Docker comment construire notre conteneur. Crée un fichier nommé Dockerfile
(sans extension) dans ton dossier de projet et ajoute ceci :
# Utiliser une image parent officielle du runtime Node
FROM node:14
# Définir le répertoire de travail dans le conteneur
WORKDIR /usr/src/app
# Copier package.json et package-lock.json
COPY package*.json ./
# Installer les dépendances
RUN npm install
# Copier le reste du code de l'application
COPY . .
# Rendre le port 3000 accessible à l'extérieur du conteneur
EXPOSE 3000
# Définir la commande pour exécuter l'application
CMD [ "node", "app.js" ]
Décomposons cela :
-
FROM node:14
: Cela spécifie l'image de base que nous utilisons – dans ce cas, Node.js version 14. -
WORKDIR /usr/src/app
: Cela définit le répertoire de travail à l'intérieur du conteneur. -
COPY package*.json ./
: Cela copie nos fichierspackage.json
dans le conteneur. -
RUN npm install
: Cela installe nos dépendances à l'intérieur du conteneur. -
COPY . .
: Cela copie le reste de notre code d'application dans le conteneur. -
EXPOSE 3000
: Cela expose le port 3000 pour être accessible à l'extérieur du conteneur. -
CMD [ "node", "app.js" ]
: Cela spécifie la commande pour exécuter notre application.
Étape 4 : Construire et Exécuter le Conteneur Docker
Maintenant que nous avons notre Dockerfile, construisons notre image Docker :
docker build -t mon-app-node .
Cette commande construit une image Docker et la tague comme mon-app-node
. Le .
à la fin indique à Docker de chercher le Dockerfile dans le répertoire courant.
Une fois la construction terminée, nous pouvons exécuter notre conteneur :
docker run -p 3000:3000 mon-app-node
Cette commande exécute notre conteneur et mappe le port 3000 du conteneur au port 3000 de notre machine hôte.
Félicitations ! Tu devrais maintenant pouvoir visiter http://localhost:3000
dans ton navigateur web et voir "Bonjour, Docker !".
Commandes Docker Courantes
Voici un tableau pratique des commandes Docker que tu trouveras utiles :
Commande | Description |
---|---|
docker build |
Construire une image Docker à partir d'un Dockerfile |
docker run |
Exécuter un conteneur Docker |
docker ps |
Lister les conteneurs en cours d'exécution |
docker stop |
Arrêter un conteneur en cours d'exécution |
docker rm |
Supprimer un conteneur |
docker images |
Lister les images Docker |
docker rmi |
Supprimer une image Docker |
docker logs |
Afficher les logs pour un conteneur |
Conclusion
Et voilà, les amis ! Nous avons réussi à configurer une application Node.js avec Docker. Nous avons appris ce qu'est Docker, pourquoi il est utile, et comment créer et exécuter un conteneur pour une application Node.js.
N'oublie pas, comme pour toute nouvelle compétence, maîtriser Docker nécessite de la pratique. Ne sois pas découragé(e) si les choses ne fonctionnent pas parfaitement la première fois. Continue à expérimenter, et avant de t'en rendre compte, tu seras un pro du dockerisation !
En conclusion, je veux te partager un petit secret. Quand j'ai commencé avec Docker, j'ai accidentellement tapé docker run
au lieu de docker build
et j'ai passé une heure à me demander pourquoi mes modifications n'apparaissaient pas. Nous faisons tous des erreurs – c'est comme ça que nous apprenons !
Continue à coder, continue à apprendre, et surtout, amuse-toi bien ! À la prochaine, joyeuse dockerisation !
Credits: Image by storyset