Docker - 6.3 Docker Compose : les commandes essentielles

Docker Compose permet de décrire plusieurs conteneurs dans un seul fichier, puis de les lancer d'une seule commande. Cette leçon présente l'outil en ligne de commande, les deux commandes à connaître absolument et un exemple simple avec un proxy inverse placé devant un serveur web.

Un outil à part, proche de Docker

Docker Compose est un programme distinct de la commande docker. Il est fourni avec Docker Desktop sous Windows et macOS. Sous Linux, il faut le télécharger séparément.

Compose communique avec l'API Docker en arrière-plan, pour le compte de la commande docker. Beaucoup de commandes se ressemblent, et l'outil est idéal pour le développement local et les tests rapides.

Les commandes à connaître

La commande docker compose up démarre tout ce que décrit le fichier : réseaux, volumes et conteneurs, avec leur configuration. C'est la commande la plus utilisée au quotidien.

La commande docker compose down arrête les conteneurs, puis supprime les réseaux et les volumes devenus inutiles. Beaucoup de personnes oublient cette étape de nettoyage.

Sans option, les journaux de tous les conteneurs s'affichent à l'écran. L'option -d lance les conteneurs en arrière-plan, pour libérer le terminal.

docker compose up
docker compose up -d
docker compose ls
docker compose top
docker compose down
  • docker compose ls : affiche les projets Compose en cours d'exécution.
  • docker compose top : affiche les processus des services en cours.

Un exemple avec un proxy et un serveur web

L'exemple contient deux services. Le premier est un serveur nginx configuré en proxy inverse, qui écoute sur le port 80 de la machine. Le second est un serveur web httpd, c'est-à-dire Apache, placé derrière le proxy.

Le fichier de configuration de nginx est monté dans le conteneur en lecture seule. Compose crée automatiquement un réseau privé pour que les deux services communiquent.

Réseaux et volumes n'ont pas besoin d'être déclarés dans cet exemple. Ils ne servent que pour personnaliser le réseau, par exemple en changeant les adresses IP, ou pour utiliser des volumes nommés.

En résumé

Docker Compose lance et arrête un ensemble de conteneurs à partir d'un fichier. La commande up démarre le projet, et la commande down le nettoie. Pour le développement local, ces deux commandes suffisent dans la plupart des cas.

Points clés

  • Docker Compose est un outil distinct, à installer à part sous Linux.
  • docker compose up démarre tous les services décrits dans le fichier.
  • docker compose down arrête les conteneurs et nettoie les réseaux et volumes inutiles.
  • L'option -d libère le terminal en lançant les conteneurs en arrière-plan.
  • Le proxy relaie le trafic vers le serveur web du second service.

Questions fréquentes

Faut-il installer Docker Compose séparément ?

Non avec Docker Desktop sous Windows et macOS, car il est inclus. Sous Linux, il faut le télécharger à part.

Quelle différence entre up et up -d ?

Sans -d, les journaux des conteneurs s'affichent au premier plan. Avec -d, les conteneurs tournent en arrière-plan.

Pourquoi exécuter docker compose down ?

Cette commande arrête les conteneurs et supprime les réseaux et volumes devenus inutiles, pour ne rien laisser après vos tests.