Projet

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, web et db sont définis comme deux services.

  • image: indique l'image Docker utilisée pour le service, telle que nginx et mysql.

  • ports: mappe les ports entre l'hôte et le conteneur. Par exemple, 90:80 mappe le port 90 sur l'hôte NAS au port 80 dans le conteneur, permettant l'accès au conteneur via NAS_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 sur example.

  • MYSQL_DATABASE: crée une base de données nommée mydatabase.

  • 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 sur password.

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, ./html fait référence à un répertoire sur UGOS Pro, qui est le sous-répertoirehtml situé 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/html du 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 fichierdocker-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.