tools.rdr-it.comAide-mémoireDocker Compose

📦 Docker Compose

Orchestration multi-conteneurs

Aide-mémoire

Docker Compose — Aide-mémoire

Commandes essentielles

# Démarrer tous les services (en arrière-plan)
docker compose up -d

Démarrer et rebuild si nécessaire

docker compose up -d --build

Arrêter tous les services

docker compose down

Arrêter et supprimer les volumes

docker compose down -v

Voir les logs de tous les services

docker compose logs -f

Logs d'un service spécifique

docker compose logs -f mon-service

Redémarrer un service

docker compose restart mon-service

Exécuter une commande dans un service

docker compose exec mon-service bash

Voir l'état des services

docker compose ps

Rebuild une image sans cache

docker compose build --no-cache

Valider la syntaxe du fichier

docker compose config

Structure de base

version: "3.9"

services:

web: image: nginx:alpine ports: - "80:80" volumes: - ./html:/usr/share/nginx/html:ro restart: unless-stopped depends_on: - api

api:

build: context: ./backend dockerfile: Dockerfile environment: - NODE_ENV=production - DB_HOST=db ports: - "3000:3000" volumes: - app_data:/data networks: - backend restart: unless-stopped

db:

image: postgres:15-alpine environment: POSTGRES_DB: mydb POSTGRES_USER: user POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - pg_data:/var/lib/postgresql/data networks: - backend restart: unless-stopped

volumes:

app_data: pg_data:

networks:

backend: driver: bridge

Variables d'environnement

# Fichier .env (automatiquement chargé par Compose)
DB_PASSWORD=secret123
APP_PORT=8080
# Référencer une variable .env
services:
  app:
    ports:
      - "${APP_PORT}:3000"
    environment:
      - DB_PASSWORD=${DB_PASSWORD}

Healthcheck

services:
  api:
    image: mon-api
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 15s

Profils (démarrage sélectif)

services:
  app:
    image: mon-app
    # Toujours démarré

debug:

image: mon-debug profiles: ["debug"] # Seulement avec : docker compose --profile debug up

Dépendances avec condition

services:
  app:
    depends_on:
      db:
        condition: service_healthy
      cache:
        condition: service_started

Limites de ressources

services:
  app:
    image: nginx
    deploy:
      resources:
        limits:
          cpus: "0.5"
          memory: 512M
        reservations:
          memory: 128M

Surcharge avec docker-compose.override.yml

# docker-compose.override.yml (dev uniquement, gitignore)
services:
  app:
    build:
      target: dev
    volumes:
      - .:/app            # hot reload
    ports:
      - "9229:9229"       # debugger
    environment:
      - DEBUG=*
🔧 Ouvrir tools.rdr-it.com — application complète →

Plus de 40 outils AdminSys gratuits · SSL · DNS · Docker · Nginx · SSH · Mermaid · et plus