Aller au contenu principal

Démarrer avec Docker : conteneuriser votre première application

· 2 minutes de lecture
Haythem Rehouma
Fondateur & Lead DevOps @ InSkillOps

Docker est souvent la première brique que l'on rencontre en DevOps. Il permet d'empaqueter une application avec toutes ses dépendances dans une unité portable : le conteneur. Dans cet article, on part de zéro pour lancer une première application conteneurisée.

Image vs conteneur

Deux notions à ne pas confondre :

  • Image : un modèle immuable (le « gabarit ») contenant votre application et son environnement.
  • Conteneur : une instance en cours d'exécution d'une image.

On construit une image une fois, puis on démarre autant de conteneurs que nécessaire à partir de celle-ci.

Un premier Dockerfile

Prenons une petite application Node.js. À la racine du projet, créez un fichier Dockerfile :

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

Quelques bonnes pratiques déjà présentes ici :

  • une image de base légère (alpine) ;
  • on copie d'abord package*.json pour profiter du cache des couches lors des builds suivants ;
  • on n'installe que les dépendances de production.

Construire et lancer

# Construire l'image
docker build -t mon-app:1.0 .

# Lancer un conteneur
docker run -d -p 3000:3000 --name mon-app mon-app:1.0

Votre application est maintenant accessible sur http://localhost:3000. Pour inspecter ce qui tourne :

docker ps            # conteneurs actifs
docker logs mon-app # logs de l'application

Et ensuite ?

Une fois cette base acquise, les étapes naturelles sont :

  1. Docker Compose pour orchestrer plusieurs services (app + base de données) ;
  2. le passage à Kubernetes quand il faut monter en charge ;
  3. l'intégration dans un pipeline CI/CD pour builder et publier vos images automatiquement.

On couvre chacun de ces sujets en profondeur dans les cours InSkillOps. Bon build !