# 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 :

```yaml
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.png](https://librenard.fr/wiki/uploads/images/gallery/2026-07/scaled-1680-/machine-a-ecrire.png)](https://librenard.fr/wiki/uploads/images/gallery/2026-07/machine-a-ecrire.png)

**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.