Docker pour développeurs : images, conteneurs et Compose

DevOps2026-10-09TryQuickToolBox

Vous avez probablement entendu parler de Docker et des conteneurs, mais vous n'êtes peut-être pas sûr de leur place dans votre flux de travail quotidien. Ou peut-être avez-vous essayé Docker, mais les concepts d'images, de conteneurs et de Compose vous semblent confus. Ce guide vous présentera l'essentiel avec des exemples pratiques, afin que vous puissiez commencer à utiliser Docker efficacement dans vos projets.

Que sont les images et les conteneurs Docker ?

Considérez une image Docker comme un plan pour votre application. Elle contient tout ce qui est nécessaire pour exécuter votre code : le système d'exploitation, l'environnement d'exécution, les bibliothèques et vos fichiers d'application. Les images sont immuables et construites à partir d'un Dockerfile.

Un conteneur est une instance en cours d'exécution d'une image. Lorsque vous démarrez un conteneur, Docker crée un environnement isolé à partir de l'image. Vous pouvez exécuter plusieurs conteneurs à partir de la même image, chacun avec son propre état.

Différences clés

Image Conteneur
Modèle en lecture seule Instance exécutable
Construite à partir d'un Dockerfile Créé à partir d'une image
Stockée dans un registre S'exécute sur l'hôte
Immuable Éphémère (peut être arrêté, démarré, supprimé)

Construire votre première image Docker

Créons une application Node.js simple et conteneurisons-la. Commencez par un Dockerfile à la racine de votre projet :

# Utiliser une image Node.js officielle comme image parente
FROM node:18-alpine

# Définir le répertoire de travail
WORKDIR /app

# Copier package.json et package-lock.json
COPY package*.json ./

# Installer les dépendances
RUN npm ci --only=production

# Copier le reste du code de l'application
COPY . .

# Exposer le port sur lequel l'application s'exécute
EXPOSE 3000

# Définir la commande pour exécuter l'application
CMD ["node", "server.js"]

Construisez l'image avec :

docker build -t my-node-app .

Exécutez un conteneur à partir de l'image :

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

Votre application est maintenant accessible à l'adresse http://localhost:3000.

Gérer les conteneurs

Voici les commandes essentielles pour gérer les conteneurs :

Simplifier les applications multi-conteneurs avec Docker Compose

Les applications réelles ont souvent besoin de plusieurs services : un serveur web, une base de données, un cache, etc. Les gérer avec des commandes docker run individuelles est fastidieux. Docker Compose vous permet de définir et d'exécuter des applications multi-conteneurs à l'aide d'un fichier YAML.

Créez un fichier docker-compose.yml :

version: '3.8'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - DB_HOST=db
    depends_on:
      - db
  db:
    image: postgres:15-alpine
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=mydb
    volumes:
      - postgres_data:/var/lib/postgresql/data
volumes:
  postgres_data:

Démarrez tous les services avec :

docker compose up -d

Arrêtez-les et supprimez-les avec :

docker compose down

Bonnes pratiques pour le développement

FAQ

Quelle est la différence entre une image et un conteneur ?

Une image est un modèle en lecture seule qui définit l'application et ses dépendances. Un conteneur est une instance en cours d'exécution d'une image, avec une couche inscriptible par-dessus.

Puis-je utiliser Docker Compose en production ?

Docker Compose est principalement conçu pour le développement et les tests. Pour la production, envisagez des outils d'orchestration comme Kubernetes ou Docker Swarm.

Comment persister les données dans Docker ?

Utilisez des volumes ou des montages bind. Les volumes sont gérés par Docker et constituent le moyen privilégié pour persister les données générées par les conteneurs.

Prêt à conteneuriser votre application ? Si vous avez besoin de convertir de la documentation ou des guides en PDF pour votre équipe, essayez notre convertisseur Word en PDF pour partager des documents soignés.