Gestion et personnalisation des conteneurs
Cette page est écrite pour aider les utilisateurs de tous niveaux à tirer le meilleur parti des conteneurs Docker sur Unraid OS. Les conseils et les meilleures pratiques proviennent de l'équipe d'Unraid, qui veille à ce qu'ils soient adaptés aux besoins des utilisateurs. Cependant, gardez à l'esprit que Docker évolue constamment, donc pour les fonctionnalités les plus récentes, les configurations avancées ou les problèmes de dépannage qui vont au-delà de ce que couvre Unraid, il est toujours bon de consulter la documentation officielle de Docker.
Avant de personnaliser un conteneur Docker dans Unraid, il est utile de comprendre les options de configuration de base. Chaque modèle de conteneur offre une interface conviviale pour configurer le réseau, le stockage et les variables d'environnement, vous permettant d'adapter le comportement du conteneur à vos besoins sans utiliser d'outils en ligne de commande complexes.
- Type de réseau
- Mappages de volumes
- Mappages de ports
- Variables d'environnement
Unraid prend en charge plusieurs modes réseau Docker. Le type de réseau que vous choisissez détermine comment votre conteneur communique avec d'autres appareils et conteneurs :
-
Pont (par défaut) : Le conteneur est placé sur un réseau interne Docker. Seuls les ports que vous mappez explicitement seront accessibles depuis votre serveur Unraid ou votre réseau local. C'est l'option la plus sûre et la plus courante pour la plupart des applications.
-
Hôte : Le conteneur partage la pile réseau du serveur Unraid. Il peut utiliser n'importe quel port disponible, mais vous devez vous assurer qu'il n'y a pas de conflit de ports avec d'autres services. Utilisez ce mode uniquement si l'application nécessite un accès réseau direct.
-
Aucun : Le conteneur n'a aucun accès réseau. Utilisez ceci pour des charges de travail isolées qui n'exigent aucune connectivité réseau.
-
Personnalisé (macvlan/ipvlan) : Le conteneur reçoit sa propre adresse IP sur votre réseau local, le faisant apparaître comme un appareil distinct. Cela est utile pour des scénarios avancés mais peut nécessiter une configuration supplémentaire dans votre environnement réseau.
Le type de réseau par défaut spécifié dans le modèle de conteneur est recommandé pour la plupart des utilisateurs.
Docker a une limitation qui l'empêche de participer à deux réseaux partageant le même sous-réseau. Si vous changez entre filaire et sans fil, vous devrez redémarrer Docker et reconfigurer tous les conteneurs existants pour utiliser la nouvelle interface. Ce changement de configuration réseau nécessite une reconfiguration des conteneurs.
Les mappages de volume contrôlent comment votre conteneur accède aux fichiers sur votre serveur Unraid. Chaque mappage relie un dossier à l'intérieur du conteneur (chemin du conteneur) à un dossier sur votre serveur Unraid (chemin de l'hôte).
- Chemin du conteneur : Le répertoire à l'intérieur du conteneur (par exemple,
/config
ou/unraid_media
). - Chemin hôte : Le répertoire sur votre serveur Unraid (par exemple,
/mnt/user/appdata/myapp
). - Mode d'accès : Contrôle les permissions - lecture seule ou lecture/écriture. Utilisez le mode le plus restrictif qui permet toujours au conteneur de fonctionner.
Store application data (settings, libraries, etc.) outside the container, typically in the appdata
user share. This share management approach keeps your data safe during updates or reinstalls.
- Les chemins sont sensibles à la casse.
- Les chemins des conteneurs doivent commencer par un
/
. - Si vous utilisez un périphérique non attribué comme chemin hôte, réglez le mode d’accès à une option "Esclave" pour garantir une détection correcte.
- Les chemins hôtes sont créés automatiquement s'ils n'existent pas au démarrage du conteneur.
- L'apparition de dossiers inattendus sur votre serveur peut indiquer un mappage mal configuré.
Les mappages de ports déterminent comment le trafic réseau est acheminé de votre serveur Unraid vers le conteneur.
-
Réseau en pont : Vous pouvez mapper des ports de conteneur internes à différents ports hôtes. Par exemple, si trois conteneurs utilisent le port 8000 en interne, vous pouvez les mapper à 8000, 8001 et 8002 sur l'hôte.
-
Réseau hôte : Le conteneur peut utiliser n'importe quel port disponible. Évitez d'exécuter plusieurs conteneurs avec le même port pour éviter les conflits.
Modifiez uniquement la valeur du port hôte. Ne changez pas le port de conteneur à moins que vous ne sachiez que l'application le prend en charge.
La plupart des modèles proposent des valeurs par défaut sensées, mais vous pouvez ajouter ou ajuster des mappages de ports.
Les variables d'environnement peuvent personnaliser le comportement de votre conteneur Docker à l'exécution. Elles vous permettent de transmettre des paires clé-valeur que votre application conteneurisée peut lire et utiliser.
Utilisations courantes des variables d'environnement
- Définir le fuseau horaire
- Configurer les IDs utilisateur et groupe
- Spécifier les préférences linguistiques
- Ajuster les paramètres spécifiques à l'application, tels que les clés API ou les bascules de fonctionnalités
Gestion des variables d'environnement dans le WebGUI
- Vous pouvez ajouter, modifier ou supprimer des variables d'environnement dans l'écran de configuration du conteneur via le WebGUI.
- De nombreux modèles de conteneurs viennent avec des variables d'environnement communes déjà définies, mais vous pouvez toujours en ajouter d'autres si nécessaire.
- Assurez-vous de consulter la documentation spécifique de l'application pour savoir quelles variables d'environnement sont disponibles et quelles valeurs sont valides.
TZ=America/New_York
: Ceci définit le fuseau horaire du conteneur.PUID=99
etPGID=100
: Cela définit les IDs utilisateur et groupe pour les permissions de fichiers.UMASK=022
: Cela contrôle les permissions par défaut des fichiers créés.API_KEY=your_api_key_here
: Cela pourrait être utilisé par une application pour l'authentification avec un service externe.
Utilisez les variables d'environnement pour éviter de coder en dur des informations sensibles ou spécifiques à l'environnement à l'intérieur de vos images de conteneur. Cette pratique améliore la portabilité et la sécurité de vos conteneurs.
Création et démarrage des conteneurs
Une fois que vous avez configuré le réseau de votre conteneur, les mappages de volumes, les mappages de ports et les variables d'environnement, vous êtes prêt à créer et lancer votre conteneur Docker. Cette section vous guidera à travers le processus de création, expliquera comment gérer l'ordre de démarrage et les dépendances, et fournira des conseils pour une personnalisation avancée du démarrage.
Création d'un conteneur
Après avoir examiné vos paramètres de configuration dans le modèle de conteneur :
- Cliquez sur Créer pour commencer à télécharger et configurer le conteneur.
- Évitez de fermer votre fenêtre de navigateur ou de naviguer ailleurs jusqu'à ce que le processus soit terminé.
- Le téléchargement initial pour un nouveau dépôt peut prendre plus de temps que les téléchargements ultérieurs.
- Une fois le processus terminé, cliquez sur Terminé pour revenir à la page Docker, où vous pourrez gérer ou ajouter d'autres conteneurs.
Planification de votre séquence de démarrage
Certains conteneurs dépendent d'autres pour fonctionner correctement. Par exemple, une application peut avoir besoin d'un conteneur de base de données en premier, ou un service peut nécessiter un conteneur VPN actif avant de démarrer.
- Identifiez les conteneurs qui fournissent des services essentiels (comme les bases de données, les VPNs ou les passerelles de stockage).
- Assurez-vous que les conteneurs dépendants ne sont démarrés qu'après que leurs prérequis aient été lancés et prêts.
- Consultez la documentation pour chaque conteneur afin de comprendre les exigences spécifiques de démarrage.
Démarrage avancé des conteneurs
Unraid vous offre un contrôle flexible sur les conteneurs qui démarrent automatiquement et dans quel ordre. Ceci est particulièrement utile si vous avez des conteneurs qui dépendent d'autres (comme un service de base de données ou un service VPN).
Pour garantir qu'un conteneur démarre automatiquement au démarrage de l'array :
- Allez dans l'onglet Docker dans le WebGUI.
- Basculez l'interrupteur Démarrage automatique sur ON pour chaque conteneur que vous voulez lancer automatiquement.
Personnaliser l'ordre et les délais de démarrage
Par défaut, Unraid démarre tous les conteneurs en démarrage automatique le plus rapidement possible, dans l'ordre où ils apparaissent dans l'onglet Docker. Vous pouvez personnaliser cet ordre et ajouter des temps d'attente entre les démarrages des conteneurs :
- Sur l'onglet Docker, déverrouillez la liste des conteneurs en utilisant l'icône de cadenas.
- Faites glisser et déposez les conteneurs pour réorganiser leur ordre.
- Passez à la Vue avancée en utilisant le bouton bascule en haut à droite.
- Dans la colonne AutoStart, entrez un temps d'attente (en secondes) dans le champ attente pour tout conteneur nécessitant un supplément de temps avant que le suivant ne démarre.
- Utilisez l'essai et l'erreur pour déterminer les meilleurs temps d'attente pour votre configuration.
Définir l'ordre correct et les temps d'attente est particulièrement important pour les conteneurs qui dépendent de services fournis par d'autres (par exemple, démarrer une base de données avant une application qui l'utilise, ou un VPN avant des applications dépendantes).
Tester votre séquence de démarrage
Bien qu'Unraid ne possède pas de fonctionnalité dédiée de "test de séquence de démarrage", vous pouvez simuler et vérifier votre ordre de démarrage :
- Arrêtez tous les conteneurs depuis l'onglet Docker.
- Démarrez chaque conteneur manuellement, dans cet ordre planifié, en utilisant le bouton Démarrer.
- Surveillez les journaux des conteneurs et le comportement des applications pour vous assurer que les dépendances sont satisfaites et que les services se lancent comme prévu.
- Ajustez l'ordre de démarrage ou les temps d'attente si nécessaire.
Testez votre séquence de démarrage après avoir modifié les dépendances de conteneurs ou ajouté de nouveaux services, surtout si votre configuration repose sur un timing de démarrage spécifique.
Contrôler vos conteneurs
Une fois que vous avez créé et démarré votre conteneur Docker, sa gestion est facile via le WebGUI. Ce guide vous expliquera comment utiliser le menu contextuel, comprendre les indicateurs de santé du conteneur et accéder aux mappages de volumes dans votre conteneur.
Pour accéder au menu contextuel du conteneur, allez dans l'onglet Docker ou Dashboard et cliquez sur l'icône du conteneur que vous souhaitez gérer. Ce menu offre un accès simple aux actions courantes :
Options | Description |
---|---|
WebUI | Ouvre l'interface web du conteneur dans un nouvel onglet de navigateur (si disponible). |
Console | Ouvre une interface en ligne de commande pour interagir directement avec le conteneur. |
Arrêter | Arrête le conteneur en cours d'exécution. |
Pause | Met en pause le conteneur, arrêtant temporairement tous les processus. |
Redémarrer | Redémarre le conteneur, appliquant les modifications de configuration. |
Journaux | Affiche la sortie des journaux du conteneur pour le dépannage. |
Modifier | Modifiez les paramètres du conteneur, tels que les mappages de ports ou de volumes. Les changements s'appliquent immédiatement après enregistrement. |
Supprimer | Supprime le conteneur. Vous pouvez choisir de ne supprimer que le conteneur ou également son image. |
Page du projet | Ouvre la page de projet du conteneur pour la documentation et le support. |
Support | Fournit un accès aux ressources de support et à l'aide pour le conteneur. |
Plus d'infos | Affiche des informations supplémentaires sur le conteneur et sa configuration. |
Indicateur de santé
Vous trouverez un indicateur de santé coloré à côté de l'icône de chaque conteneur :
- 🟢 Sain : Indique que le conteneur fonctionne et répond comme prévu.
- 🟡 Unhealthy : Le conteneur fonctionne mais a échoué à son contrôle de santé. Consultez les journaux ou les paramètres du conteneur pour plus d'informations.
- ⚪ No health check : Cela signifie qu'aucun contrôle de santé n'est configuré pour le conteneur. C'est courant pour de nombreuses applications, et pas nécessairement un problème.
Les contrôles de santé sont définis par l'auteur du conteneur et peuvent ne pas être présents pour toutes les images.
Mappages de volumes à l'intérieur d'un conteneur
Lors de la configuration de votre application via son interface web, référencez le chemin du conteneur que vous avez configuré lors de la configuration - pas le chemin hôte.
Par exemple, si vous avez mappé /mnt/user/media
sur l'hôte à /unraid_media
dans le conteneur, vous devez utiliser /unraid_media
dans les paramètres de l'application.
Scénarios d'exemple
Voici quelques exemples montrant les configurations courantes de mappages de chemin que les utilisateurs ont fréquemment besoin lors de la configuration de conteneurs Docker. Ils démontrent comment traduire entre les chemins du système de fichiers hôte d'Unraid et les chemins internes du conteneur, vous aidant à configurer correctement les applications.
-
Serveur multimédia : Chemin hôte :
/mnt/user/media
Chemin conteneur :/unraid_media
Dans l'application, définissez l'emplacement de votre bibliothèque multimédia sur
/unraid_media
. -
Stockage des données de l'application : Chemin hôte :
/mnt/user/appdata/myapp
Chemin conteneur :/config
Dans l'application, utilisez
/config
pour le stockage de la configuration. -
Multiple user shares: Host path:
/mnt/user/media
→ Container path:/media
Host path:/mnt/user/data
→ Container path:/data
Référencez
/media
ou/data
dans l'application selon les besoins.
Utilisez toujours le mode d'accès le plus restrictif (lecture seule ou lecture/écriture) qui permet à votre conteneur de fonctionner correctement.
Planifier le démarrage et l'arrêt
Unraid ne prend pas en charge nativement les actions de démarrage ou d'arrêt planifiées pour les conteneurs Docker, mais vous pouvez facilement automatiser ce processus en utilisant le plugin User Scripts. Cet outil puissant vous permet d'exécuter des scripts personnalisés à intervalles réguliers, permettant un contrôle automatique de vos conteneurs.
Plugin User Scripts
Le plugin User Scripts vous permet de créer, gérer et programmer des scripts shell personnalisés directement depuis le WebGUI. Vous pouvez l'utiliser pour diverses tâches d'automatisation, telles que le démarrage ou l'arrêt des conteneurs, la sauvegarde des données ou l'exécution de routines de maintenance.
- Installez le plugin depuis l'onglet Apps si vous ne l'avez pas encore fait.
- Accédez-y via Paramètres → User Scripts pour créer et gérer vos scripts.
Pour en savoir plus sur les plugins, consultez Plugins.
Planification des actions des conteneurs
Pour automatiser le démarrage ou l'arrêt de vos conteneurs selon un planning :
- Installez le plugin User Scripts depuis l'onglet Apps.
- Accédez à Paramètres → User Scripts.
- Créez un nouveau script pour chaque planification unique. Vous pouvez inclure des commandes pour plusieurs conteneurs dans un seul script s'ils partagent le même programme.
- Définissez le planning à l'aide du menu déroulant ou utilisez une expression
cron
personnalisée pour des options de chronométrage plus avancées. - Cliquez sur Appliquer pour enregistrer et activer votre script.
Les expressions Cron permettent une planification flexible au-delà des options intégrées. Par exemple, 0 3 * * 1
exécute votre script à 3h00 chaque lundi matin.
Exemples de commandes
- Démarrer le conteneur
- Arrêter le conteneur
- Redémarrer le conteneur
- Vérifier le statut du conteneur
- Afficher les journaux du conteneur
Pour démarrer un conteneur, utilisez la commande :
docker start "container-name"
Remplacez "container-name"
par le nom réel comme indiqué dans l'onglet Docker.
Pour arrêter un conteneur, utilisez la commande :
docker stop "container-name"
Remplacez "container-name"
par le nom réel comme indiqué dans l'onglet Docker.
Pour redémarrer un conteneur (utile après avoir mis à jour les configurations ou en cas de dépannage) :
docker restart "container-name"
Remplacez "container-name"
par le nom réel comme indiqué dans l'onglet Docker.
Pour vérifier si un conteneur est en cours d'exécution :
docker ps --filter "name=container-name"
Cela listera le conteneur s'il est actuellement en cours d'exécution.
Pour voir les journaux d'un conteneur (utile pour le dépannage) :
docker logs "nom-du-conteneur"
Cela affiche la sortie des journaux récents pour le conteneur spécifié.
Vous pouvez trouver le nom du conteneur dans l'onglet Docker ou en visualisant la commande docker run
sur l'écran de configuration du conteneur.