docker-compose fait parti d'un ensemble d'outils de l'environnement Docker qui comprend:
docker-compose est un orchestrateur. Lancer un nombre important de conteneurs n'est pas forcément simple. Il faut:
docker-compose orchestre/gère des services. Un service est composé d'un ou plusieurs conteneurs.
docker-compose est paramétré via un fichier texte formaté en YAML, facilement lisible et pouvant être intégré à un outil de révision (versioning) tel que git.
apt-get install docker-compose
Construire les images
docker-compose build
Lance l’exécution des services définis, construit les images si nécessaire
docker-compose up -d
Pour gérer les services:
#etat des services docker-compose ps # démarrage / arret / destruction d'un service docker-compose start srv_name docker-compose stop srv_name docker-compose rm srv_name
Le docker-compose.yml peut comporter des variables qui seront résolues en fonction des valeurs définies dans l'environnement. Par défaut le commande docker-compose lit les valeur du fichier .env s'il existe.
COMPOSE_PROJECT_NAME=test HOSTNAME=localhost
Dans cet exemple deux variables sont définies, on récupère leur valeur au sein du fichier docker-compose.yml via la syntaxe ${MA_VARIABLE}:
${HOSTNAME}
Pour chaque service, on peut redéfinir le fichier contenant les variables d'environnement:
services:
web:
env_file: variables.env
Après toute modification du fichier, la syntaxe et la complétions des variables du fichier docker-compose.yml peuvent
docker-compose config
La commande retourne sur la sortie standard les valeurs définies dans le fichier: les variables utilisés dans le fichier sont expansées.
docker-compose permet le passage à l’échelle (scaling) via l'option scale de la commande up:
# lance 3 instances du service srv_name docker-compose up -d --scale srv_name=3