Qu'est-ce que Docker Compose ?
Docker Compose est un outil spécialement conçu pour Docker afin de définir et de gérer des applications multi-conteneurs, simplifiant ainsi le déploiement et la gestion d'applications complexes. En termes simples, il vous permet de décrire les multiples services, réseaux et configurations de stockage d'une application dans un seul fichier YAML, puis de démarrer tous les services à l'aide d'une seule commande. Si vous exécutez plusieurs applications sur UGOS Pro ou si vous souhaitez rationaliser le processus de déploiement, Docker Compose est un outil indispensable.
Scénarios applicables
L'utilisation de Docker Compose sur UGOS Pro est généralement adaptée aux scénarios suivants :
Gestion d'applications multiservices
Si vous exécutez une application complexe sur votre NAS qui comprend plusieurs services, tels qu'un serveur web, une base de données, un cache et un proxy inverse, Docker Compose vous permet d'intégrer ces services dans un seul fichier de configuration pour une gestion et une maintenance unifiées.
-
Exemple : un projet WordPress type peut inclure un conteneur WordPress et un conteneur MySQL. Avec Compose, vous pouvez démarrer les deux services simultanément tout en vous assurant que leurs paramètres de connexion sont correctement configurés.
Déploiement simplifié des applications
Avec un fichier Docker Compose, vous pouvez définir tous les services, réseaux et stockages nécessaires à une application conteneurisée. En démarrant tous les services définis à l'aide d'une seule commande, Docker Compose gère automatiquement les dépendances des services, ce qui simplifie le processus de déploiement d'applications complexes via l'interface Docker.
Portabilité des applications
Docker Compose offre une grande portabilité pour les applications conteneurisées. Vous pouvez regrouper toute la configuration de l'application dans un fichier Compose et la déployer rapidement sur différents appareils UGOS Pro, garantissant ainsi cohérence et efficacité.
Structure du fichier Docker Compose
Les fichiers Docker Compose sont généralement nommés docker-compose.yaml et utilisent la syntaxe YAML pour définir les services, les réseaux et le stockage. La structure de base d'un fichier Compose est la suivante :
version : '3'
services :
web :
image : nginx
ports :
- "90:80"
volumes :
- ./html:/usr/share/nginx/html
db :
image : mysql
environnement :
MYSQL_ROOT_PASSWORD : exemple
MYSQL_DATABASE : mydatabase
MYSQL_USER : utilisateur
MYSQL_PASSWORD : mot de passe
volumes :
- ./data:/var/lib/mysql
-
version: définit la version du fichier Docker Compose.
-
services: Spécifie les services dans l'application. Dans cet exemple,
webetdbsont définis comme deux services. -
image: indique l'image Docker utilisée pour le service, telle que
nginxetmysql. -
ports: mappe les ports entre l'hôte et le conteneur. Par exemple,
90:80mappe le port 90 sur l'hôte NAS au port 80 dans le conteneur, permettant l'accès au conteneur viaNAS_IP:90. -
volumes: mappe les répertoires de stockage NAS aux répertoires du conteneur pour la persistance des données.
-
environment: définit les variables d'environnement pour les services dans le conteneur, telles que les mots de passe de base de données, les clés API et d'autres options de configuration.

Explication des variables d'environnement
Dans cet exemple :
-
MYSQL_ROOT_PASSWORD: définit le mot de passe root de la base de données MySQL surexample. -
MYSQL_DATABASE: crée une base de données nomméemydatabase. -
MYSQL_USER: crée un utilisateur de base de données nomméuser. -
MYSQL_PASSWORD: définit le mot de passe de l'utilisateur ci-dessus surpassword.
Ces variables d'environnement sont transmises au service MySQL lors du démarrage du conteneur et sont utilisées pour initialiser la base de données.
Fonctionnement du montage de volume
Dans le fichier Docker Compose, ./html:/usr/share/nginx/html est une configuration de volume où ./ représente le répertoire dans lequel se trouve le fichier Docker Compose.
-
./html: dans ce contexte,./représente le répertoire dans lequel se trouve le fichier Docker Compose. Plus précisément,./htmlfait référence à un répertoire sur UGOS Pro, qui est le sous-répertoirehtmlsitué dans le même répertoire que le fichier Docker Compose. -
/usr/share/nginx/html: fait référence à un répertoire à l'intérieur du conteneur. Pour les conteneurs Nginx, il s'agit du chemin d'accès par défaut pour les fichiers de sites Web statiques.
Avec cette configuration, Docker monte le répertoire ./html de l'hôte vers /usr/share/nginx/html à l'intérieur du conteneur, ce qui permet :
-
Le reflet immédiat des modifications apportées dans le répertoire
./htmlde l'hôte vers le répertoire/usr/share/nginx/htmldu conteneur . -
La synchronisation des modifications apportées à l'intérieur du conteneur vers le répertoire
./htmlde l'hôte .
Lien connexe : Comment spécifier correctement les chemins d'accès au montage de volume dans un fichier de configuration Docker Compose ?
Comment utiliser Docker Compose sur UGOS Pro
Supposons que vous exécutiez un centre multimédia domestique sur UGREEN NAS. Vous pouvez utiliser Docker Compose pour gérer des services tels que Jellyfin (serveur multimédia), MariaDB (base de données) et Redis (cache). À l'aide d'un seul fichierdocker-compose.yml, vous pouvez définir les dépendances, les montages de volumes et les configurations réseau pour ces services et gérer l'ensemble du centre multimédia à l'aide de commandes simples.
Étapes à suivre :
1. Créer un projet
Ouvrez l'application Docker dans UGOS Pro, cliquez sur « Projet » > « Créer » et remplissez les informations suivantes :
-
Nom: donnez un nom au projet.
-
Chemin de stockage: spécifiez le chemin où le fichier de configuration Docker Compose (
docker-compose.yaml) sera stocké. -
Configuration Compose: entrez directement la configuration YAML ou importez un fichier
docker-compose.yamlexistant .
2. Définir PUID et PGID
-
Si nécessaire, définissez les valeurs PUID et PGID.
-
Il est recommandé d'utiliser l'ID utilisateur et l'ID groupe de l'utilisateur actuel afin d'éviter les problèmes d'autorisation pouvant entraîner des erreurs de conteneur.
3. Déployer le projet
-
Après avoir vérifié la configuration, cliquez sur « Déployer » pour créer le projet.
En suivant ces étapes, vous pouvez utiliser Docker Compose pour démarrer et gérer l'ensemble de votre centre multimédia domestique. Tous les services s'exécuteront en arrière-plan avec les dépendances correctement configurées, garantissant ainsi un fonctionnement fluide.