Certaines applications peuvent être un peu plus complexes que d'autres et la simple commande docker run peut rapidement devenir difficile à lire et à maintenir.
Docker Compose permet de décrire l'ensemble d'une application dans un simple fichier texte nommé docker-compose.yml ou compose.yml
Voici a quoi ressemble ce fichier :
services:
uptime-kuma:
image: louislam/uptime-kuma
container_name: uptime-kuma
ports:
- "3001:3001"
volumes:
- ./data:/app/data
restart: unless-stopped
Si l'on détaille chaque ligne on à :
services : Il contient la liste des conteneurs qui seront créés.
uptime-kuma : C'est le nom du service choisi par l'utilisateur, ici le même que l'image mais vous pouvez mettre ce que vous voulez
image : Indique qu'elle image Docker sera utilisée, ici c'est l'image louislam/uptime-kuma
container_name : Le nom qui sera attribué au conteneur, ici uptime-kuma
ports : Permets de rendre l'application accessible depuis le réseau, nous avons choisi le port 3001 pour l'hôte ainsi que pour le conteneur, le service sera donc accessible depuis IP-DE-L'HOTE:3001
volumes : permets de conserver les données même après la suppression du conteneur, ici nous avons choisi ./data:/app/data. Lors du premier lancement du conteneur, un fichier data sera crée à côté du fichier Compose.
restart : Il permet de déterminer le comportement du conteneur après un redémarrage du serveur, dans l'exemple, nous avons choisi restart: unless-stopped. Dans ce cas, le conteneur redémarrera automatiquement sauf si l'administrateur l'a volontairement arrêté.
Voici d'autres options possibles :
restart: no
Le conteneur ne redémarre jamais automatiquement (comportement par défaut).
restart: always
Le conteneur redémarre systématiquement, même s'il a été arrêté manuellement.
restart: on-failure
Le conteneur redémarre uniquement en cas d'échec (code de sortie différent de 0).
restart: on-failure:5
Le conteneur redémarre en cas d'échec, avec un maximum de 5 tentatives.
Commandes principales
Voici les commandes que l'on peut lancer en se placant dans le même dossier que le fichier compose
Démarrer les services :
docker compose up -d
Afficher les conteneurs :
docker compose ps
Afficher les journaux :
docker compose logs
Arrêter les services :
docker compose down
Docker Compose est aujourd'hui la méthode la plus utilisée pour déployer des applications avec Docker.
Il permet de conserver la configuration complète d'une application dans un fichier unique, facile à sauvegarder, partager et réutiliser.