Utiliser les Profiles avec Docker Compose

Docker 18 août 2026

Avec Docker Compose, il arrive souvent d'avoir plusieurs services dans un même fichier docker-compose.yml : application, base de données, serveur web, monitoring, etc.

Le problème, c’est que nous n’avons pas toujours besoin de tout démarrer, ni arrêter.

Découvrons dans cet article comment utiliser les profiles Docker Compose pour activer certains services uniquement lorsque nous en avons besoin.

Introduction

Docker Compose permet de définir une stack complète dans un fichier YAML, puis de la démarrer avec une seule commande. C’est très pratique pour le développement local, les environnements de test ou même certaines petites stacks internes.

Prenons par exemple ce docker-compose.yml :

services:
  web:
    image: nginx:alpine

  db:
    image: postgres:16

  prometheus:
    image: prom/prometheus

  grafana:
    image: grafana/grafana

Dans cet exemple, tous les services vont démarrer avec cette commande :

docker compose up -d

Pourtant, nous n’avons pas forcément besoin de nginx, de grafana, ou de prometheus à chaque lancement.

C’est là que les profiles deviennent intéressants.

À quoi servent les profiles ?

Les profiles avec Docker Compose permettent de cibler uniquement certains services.

Cela permet par exemple de garder un seul fichier docker-compose.yml, tout en ayant plusieurs usages.

Utilisation

En ajoutant le bloc profiles dans la définition d'un service, comme dans cet exemple :

profiles:
  - web

Il est possible de cibler uniquement les conteneurs ayant le profil web avec l'option --profile, comme dans cet exemple :

docker compose --profile web up -d

Exemple

Reprenons notre docker-compose.yml, si l'on ajoute le mot-clé profiles sur nos conteneurs comme suivant :

services:
  web:
    image: nginx:alpine
    profiles:
      - web

  db:
    image: postgres:16
    profiles:
      - db

  prometheus:
    image: prom/prometheus
    profiles:
      - monitoring

  grafana:
    image: grafana/grafana
    profiles:
      - monitoring

La commande suivante permettra d'arrêter uniquement les conteneurs grafana et prometheus :

docker compose --profile monitoring stop 

Profiles multiples

Il est possible d’activer plusieurs profiles en répétant l’option --profile :

docker compose \
  --profile monitoring \
  --profile web \
  up -d

Dans ce cas, les 3 services seront démarrés web, prometheus et grafana.

Utiliser la variable d'environnement

Les profiles peuvent aussi être activés avec la variable d’environnement COMPOSE_PROFILES.

Pour activer un seul profile :

COMPOSE_PROFILES=monitoring docker compose up -d

Pour en activer plusieurs, séparez leurs noms par une virgule :

COMPOSE_PROFILES=debug,dev docker compose up -d

Cette méthode est pratique dans un script ou une pipeline CI/CD.

Mots clés