Docker Compose, c'est l'outil idéal pour orchestrer et gérer des applications composées de plusieurs services, chacun fonctionnant dans un conteneur distinct. Il simplifie le déploiement, l'organisation et la maintenance des applications complexes. Si votre projet comporte plusieurs composantes, Docker Compose est votre allié incontournable.
Les applications modernes sont souvent constituées de plusieurs composantes interconnectées. Prenons l'exemple d'une plateforme e-commerce :
Chaque composante fonctionne idéalement dans un conteneur indépendant. Docker Compose permet de définir et gérer l'ensemble de ces conteneurs dans un fichier unique.
Le fichier docker-compose.yml est au cœur de Docker Compose. Semblable à un Dockerfile, il définit les services, les réseaux, les volumes et les interactions entre conteneurs.
docker-compose.yml
Voici un exemple pour déployer un service PostgreSQL :
services: postgres: image: postgres:17 environment: POSTGRES_USER: admin POSTGRES_PASSWORD: admin POSTGRES_DB: postgres ports: - "2345:5432" volumes: - postgres-dev-db-volume:/var/lib/postgresql/data restart: always volumes: postgres-dev-db-volume:
Pour lancer les services définis dans le fichier docker-compose.yml, exécutez :
docker compose up -d
-d
--detach
docker run
Ci-dessus un exemple avec trois services avec les services, Frontend Angular, Backend Python et la base de données Postgres.
services: postgres: image: postgres:17 environment: POSTGRES_USER: admin POSTGRES_PASSWORD: admin POSTGRES_DB: postgres ports: - "2345:5432" volumes: - postgres-dev-db-volume:/var/lib/postgresql/data restart: always backend: build: context: ./backend dockerfile: Dockerfile environment: DATABASE_URL: postgres://admin:admin@postgres:5432/postgres ports: - "5000:5000" depends_on: - postgres restart: always frontend: build: context: ./frontend dockerfile: Dockerfile ports: - "4200:4200" depends_on: - backend restart: always volumes: postgres-dev-db-volume:
Il faut dans un premier temps construire les images pour le frontend et le backend avec la commande suivante:
docker compose build
Si vous souhaitez arrêter temporairement vos conteneurs sans les supprimer :
docker compose stop
Pour redémarrer les conteneurs arrêtés, utilisez :
docker compose start
Pour arrêter et supprimer les conteneurs, les réseaux, et les volumes anonymes créés par Docker Compose :
docker compose down
La commande restart permet de redémarrer vos conteneurs. Elle fonctionne comme une combinaison de stop suivi de start (stop + start), sans recréer ou modifier les conteneurs existants.
restart
stop + start
docker compose restart
down + up
Avec Docker Compose, la gestion de vos conteneurs devient simple et efficace. Que ce soit pour déployer une application multi-composantes ou pour simuler un environnement de production, Docker Compose est une solution incontournable pour accélérer vos développements.