Skip to Content
🎉 Utilisez JS efficacement →
DockerCrĂ©ation d'image Docker🚀 CrĂ©ation d'une Image Docker : Un Cas Concret

🚀 CrĂ©ation d’une Image Docker : Un Cas Concret

Dans cet exemple, nous allons empaqueter une application web simple en Node.js dans une image Docker afin de l’exĂ©cuter dans un conteneur. L’objectif est de standardiser le dĂ©ploiement en encapsulant l’application et toutes ses dĂ©pendances dans une image reproductible.


📩 L’Application Node.js

Supposons que notre application est un serveur Node.js qui affiche “Hello, Docker!” sur le port 3000. La structure du projet est la suivante :

import { FileTree } from 'nextra/components' <FileTree> <FileTree.Folder name="app" defaultOpen> <FileTree.File name="app.js" /> <FileTree.File name="package.json" /> </FileTree.Folder> </FileTree>

app.js

const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello, Docker!'); }); app.listen(3000, () => { console.log('App is running on port 3000'); });

package.json

{ "name": "docker-node-app", "version": "1.0.0", "main": "app.js", "scripts": { "start": "node app.js" }, "dependencies": { "express": "^4.17.1" } }

🔧 Écriture du Dockerfile

Le Dockerfile est la “recette” qui permet de construire l’image Docker. Voici un exemple de Dockerfile pour notre application Node.js :

# Étape 1 : Utiliser une image de base lĂ©gĂšre avec Node.js FROM node:14-alpine # Étape 2 : DĂ©finir le rĂ©pertoire de travail dans le conteneur WORKDIR /app # Étape 3 : Copier le fichier package.json et installer les dĂ©pendances COPY package.json ./ RUN npm install # Étape 4 : Copier le reste du code source de l'application COPY . . # Étape 5 : Exposer le port 3000 pour accĂ©der Ă  l'application EXPOSE 3000 # Étape 6 : DĂ©finir la commande pour dĂ©marrer l'application CMD ["npm", "start"]

Explications :

  • FROM node:14-alpine : Utilise une image de base lĂ©gĂšre avec Node.js (version 14) sur Alpine Linux.
  • WORKDIR /app : DĂ©finit /app comme rĂ©pertoire de travail dans le conteneur.
  • COPY package.json ./ et RUN npm install : Installe les dĂ©pendances de l’application.
  • COPY . . : Copie l’ensemble du code source dans le conteneur.
  • EXPOSE 3000 : Rend le port 3000 accessible de l’extĂ©rieur.
  • CMD ["npm", "start"] : Lance l’application lors du dĂ©marrage du conteneur.

đŸ› ïž Construction de l’Image Docker

Pour construire l’image Docker, placez-vous dans le rĂ©pertoire contenant le Dockerfile et exĂ©cutez la commande suivante :

docker build -t my-node-app .

DĂ©tails :

  • -t my-node-app : Tag (nom) de l’image crĂ©Ă©e.
  • . : Indique que le contexte de build est le rĂ©pertoire courant.

Docker lira le Dockerfile, exĂ©cutera chaque instruction et gĂ©nĂ©rera une image contenant l’application Node.js.


🚀 ExĂ©cution de l’Image Docker

Pour lancer un conteneur Ă  partir de l’image crĂ©Ă©e, utilisez :

docker run -d -p 3000:3000 my-node-app

Explications :

  • -d : Lance le conteneur en mode dĂ©tachĂ© (en arriĂšre-plan).
  • -p 3000:3000 : Mappe le port 3000 du conteneur au port 3000 de l’hĂŽte.
  • my-node-app : Nom de l’image Ă  utiliser.

Une fois le conteneur en cours d’exĂ©cution, ouvrez votre navigateur et rendez-vous sur http://localhost:3000  pour voir l’application afficher “Hello, Docker!”.


📌 RĂ©sumĂ©

  • Dockerfile : Automatisation de la crĂ©ation d’une image Docker pour une application Node.js.
  • Images Docker : Permettent d’encapsuler une application avec toutes ses dĂ©pendances pour garantir une exĂ©cution uniforme sur tout environnement.
  • Conteneurs : Instances isolĂ©es d’une image qui s’exĂ©cutent de maniĂšre reproductible, quel que soit l’environnement (dev, test, prod).

Cette approche vous permet de standardiser et simplifier le dĂ©ploiement d’applications en crĂ©ant des images Docker, garantissant ainsi une exĂ©cution cohĂ©rente et fiable sur n’importe quelle machine oĂč Docker est installĂ©. 🚀

mis Ă  jour le