Comprendre et maĂźtriser Docker Compose đł
DĂ©couvre Docker Compose pas Ă pas : comprends sa logique, structure tes projets, gĂšre les volumes et les rĂ©seaux, et lance tes services facilement. Ce guide te prĂ©pare Ă dĂ©ployer tes applications sereinement et Ă passer ensuite Ă Portainer sans galĂšre đ
Si tu utilises Docker depuis quelque temps, tu as sĂ»rement dĂ©jĂ vu passer des fichiers docker-compose.yml. Parfois copiĂ©s-collĂ©s, parfois modifiĂ©s Ă lâaveugle, ils finissent souvent par fonctionner⊠sans quâon sache vraiment pourquoi.
Dans cet article, on va prendre le temps de comprendre Docker Compose, son rĂŽle, sa logique, et surtout comment lâutiliser proprement. Lâobjectif nâest pas de tout automatiser Ă lâextrĂȘme, mais de poser des bases solides pour dĂ©ployer et maintenir des applications sereinement.
đ Si Docker nâest pas encore installĂ© sur ton serveur, je te conseille de commencer par ce guide : Installer Docker facilement sur Linux
Docker vs Docker Compose : quelle différence ?
Docker permet de lancer des containers un par un Ă lâaide de commandes parfois longues et peu lisibles. Câest trĂšs bien pour tester rapidement une image, mais dĂšs que ton application dĂ©pend de plusieurs services, ça devient vite compliquĂ©.
Docker Compose arrive exactement Ă ce moment-lĂ . Il permet de dĂ©crire lâensemble dâune application (services, rĂ©seaux, volumes) dans un seul fichier YAML. Ce fichier devient alors la source de vĂ©ritĂ© de ton projet.
En résumé :
- Docker lance des containers
- Docker Compose décrit et orchestre une application complÚte
Pourquoi utiliser Docker Compose ?
Docker Compose apporte plusieurs avantages concrets :
- Une configuration claire et lisible
- Une reproductibilité parfaite entre environnements
- Un dĂ©marrage et un arrĂȘt de lâapplication en une seule commande
- Une base idéale pour évoluer vers Portainer plus tard
Câest aussi un excellent moyen de documenter ton infrastructure sans Ă©crire une seule ligne de documentation supplĂ©mentaire.
Structure dâun projet Docker Compose
Avant mĂȘme dâĂ©crire du YAML, il est important dâorganiser ton projet correctement.
Voici une structure simple et efficace :
mon-projet/
âââ docker-compose.yml
âââ data/
â âââ db/
âââ app/
Cette organisation permet de séparer clairement :
- la configuration
- les données persistantes
- le code applicatif
Câest une bonne habitude Ă prendre dĂšs le dĂ©part.
Anatomie dâun fichier docker-compose.yml
Entrons maintenant dans le cĆur du sujet.
Un fichier Docker Compose commence toujours par une version et une liste de services :
version: "3.9"
services:
web:
image: nginx:alpine
ports:
- "8080:80"
Ici, on dĂ©crit un service nommĂ© web basĂ© sur lâimage NGINX. Docker Compose se charge du reste.
Les services
Un service représente un container (ou un groupe de containers identiques). Chaque service peut définir :
- une image ou un Dockerfile
- des ports
- des volumes
- des variables dâenvironnement
Exemple un peu plus complet :
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./app:/usr/share/nginx/html
Docker Compose lit ce fichier et crée exactement ce que tu décris. Ni plus, ni moins.
Les volumes : ne pas perdre ses données
Les volumes permettent de conserver les donnĂ©es mĂȘme si le container est recréé. Câest indispensable pour les bases de donnĂ©es, mais aussi trĂšs pratique pour le dĂ©veloppement.
volumes:
db-data:
services:
db:
image: mariadb:10.11
volumes:
- db-data:/var/lib/mysql
Sans volume, chaque redémarrage serait une remise à zéro complÚte. Autant dire une trÚs mauvaise idée en production.
Les réseaux : communication entre services
Bonne nouvelle : Docker Compose crée automatiquement un réseau pour ton projet. Les services peuvent donc communiquer entre eux en utilisant leur nom.
Par exemple, ton service web peut se connecter à db simplement en utilisant le hostname db. Pas besoin de configuration réseau compliquée.
Lancer et gérer un projet Docker Compose
Une fois ton fichier prĂȘt, tout se joue dans le terminal.
Démarrer le projet :
docker compose up -d
ArrĂȘter les services :
docker compose down
Voir les logs :
docker compose logs -f
Ces commandes deviendront vite des réflexes.
Erreurs fréquentes à éviter
MĂȘme avec Docker Compose, certaines erreurs reviennent souvent :
- utiliser
latestpartout sans contrÎle - oublier les volumes pour les données importantes
- modifier un container Ă la main au lieu du fichier YAML
đ rĂšgle simple : si ce nâest pas dans le docker-compose.yml, ça nâexiste pas.
Conclusion
Docker Compose est un outil fondamental dĂšs que lâon dĂ©passe un simple container. Il tâoblige Ă structurer, comprendre et documenter ton infrastructure, tout en restant simple Ă utiliser.
Dans le prochain article, on passera Ă la pratique avec le dĂ©ploiement dâune application complĂšte, puis nous verrons comment gĂ©rer exactement la mĂȘme chose via Portainer.
đ En attendant, si ce nâest pas dĂ©jĂ fait, tu peux lire : Portainer sans prise de tĂȘte : installation et mises Ă jour propres
Prendre le temps de comprendre Docker Compose maintenant, câest gagner Ă©normĂ©ment de sĂ©rĂ©nitĂ© pour la suite đ