Le fichier docker-compose.yml contient la définition des services, des volumes, des réseaux, et des autres configurations nécessaires pour exécuter une ou plusieurs applications conteneurisées.
Voici ci-dessous un docker-compose complet pour MySQL :
version:'3.8'networks:mysql_network:driver:bridgevolumes:mysql_data:mysql_dumps:services:phpmyadmin:image:phpmyadmin/phpmyadmin:latestcontainer_name:phpmyadmin_containerenvironment:PMA_HOST:mysql# Nom du service MySQL auquel phpMyAdmin doit se connecterPMA_USER:root# Utilisateur personnalisé MySQLPMA_PASSWORD:root_password# Mot de passe de l'utilisateur MySQLports: - "8080:80"# Port exposé pour accéder à phpMyAdmin (http://localhost:8080)networks: - mysql_networkrestart:always# Redémarrage automatique en cas d'arrêtmysql:image:mysql:8.0container_name:mysql_containerenvironment:MYSQL_ROOT_PASSWORD:root_password# Remplacez par un mot de passe sécuriséMYSQL_DATABASE:my_database# Nom de la base de données initialeMYSQL_USER:user# Utilisateur personnaliséMYSQL_PASSWORD:user_password# Mot de passe de l'utilisateur personnaliséMYSQL_ALLOW_EMPTY_PASSWORD:"no"# Empêche les mots de passe vides pour plus de sécuritéMYSQL_RANDOM_ROOT_PASSWORD:"no"# Génère un mot de passe root aléatoire si activé (non ici)MYSQL_ONETIME_PASSWORD:"no"# Force un changement de mot de passe à la première connexionMYSQL_LOG_CONSOLE:"true"# Pour afficher les logs dans la consolevolumes: - ./mysql_data:/var/lib/mysql# Point de montage pour les données MySQL persistantes - ./mysql_dumps:/docker-entrypoint-initdb.d# Point de montage pour les dumps à importer automatiquementports: - "3306:3306"# Port exposé pour accéder au service MySQLnetworks: - mysql_networkrestart:always# Redémarrage automatique en cas d'arrêthealthcheck:test: ["CMD-SHELL","mysqladmin ping -h 127.0.0.1 -u root --password=$$MYSQL_ROOT_PASSWORD || exit 1"]interval:30stimeout:10sretries:5deploy:resources:limits:memory:512M# Limite la mémoire à 512 Mocpus:"0.5"# Limite l'utilisation du CPU à 50 %reservations:memory:256M# Réserve 256 Mo de mémoire minimumcpus:"0.2"# Réserve 20 % du CPU minimum
2. Lancer Docker Compose
Pour démarrer les services définis dans le fichier docker-compose.yml, exécute la commande suivante à la racine du projet (là où se trouve le fichier docker-compose.yml) :
docker-composeup
3. Exécuter Docker Compose en arrière-plan (optionnel)
Si tu veux que Docker Compose démarre en arrière-plan (mode détaché), ajoute l'option -d :
docker-composeup-d
4. Arrêter les services
Pour arrêter les services lancés par Docker Compose, utilise la commande suivante :
docker-composedown
5. Voir les logs (optionnel)
Tu peux aussi afficher les logs des conteneurs en temps réel :