Docker Compose, à quoi ca sert ?

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.Machine a ecrire

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.