GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment utiliser Docker sur un Synology NAS

Aujourd'hui, nous allons voir comment utiliser Docker sur un Synology NAS.

La majorité de l'explication se fera à travers la vidéo ci-dessus , mais il est important de documenter certains points. L'implémentation de Docker sur un Synology NAS est très puissante lorsque vous la comprenez, mais elle est légèrement déroutante lorsque vous démarrez initialement. Bien que je crée des didacticiels spécifiques qui vous guideront dans la mise en œuvre de conteneurs spécifiques, mon objectif est de vous donner les connaissances nécessaires pour mettre en œuvre le conteneur de votre choix.

1. Montage de volume - Comment utiliser Synology NAS Docker

Lors de la création d'un conteneur Docker, les données importantes doivent être mappées vers un dossier local. Ceci est complété dans le Volume section, où un dossier local est mappé à un dossier conteneur. Lorsque le conteneur s'exécute, l'emplacement du dossier du conteneur dans le chemin de montage ci-dessous est écrit dans le fichier/dossier saisi sur votre Synology NAS. Toutes les données modifiées dans le dossier local du Synology NAS seront écrites dans le dossier des conteneurs.

Il est important de souligner que vous ne pouvez pas monter les dossiers que vous souhaitez. Lorsque vous téléchargez une image à partir du registre, une petite icône (illustrée ci-dessous) vous amènera à la documentation de ce conteneur. Vous pouvez rechercher cette documentation pour voir quels dossiers peuvent être montés.

Après avoir accédé à la documentation, vous devrez rechercher la page pour voir quels volumes peuvent être montés. Malheureusement, toutes les documentations sont différentes, vous devrez donc les parcourir pour trouver les informations sur le volume. En utilisant Pi-Hole comme exemple, un exemple de fichier Docker Compose est fourni. Sous les volumes section, vous pouvez trouver les deux volumes qui peuvent être montés.

Utilisation de ./etc-pihole/:/etc/pihole/ par exemple, etc-pihole est le dossier local et /etc/pihole est le dossier du conteneur. Vous pouvez facilement traduire cela sur un Synology NAS en créant des sous-dossiers dans le docker dossier et monter cet emplacement de dossier dans le dossier du conteneur. À l'aide de la capture d'écran ci-dessous, j'ai créé un dossier nommé pi-hole et un nom de sous-dossier etc-pihole . Ces dossiers se trouvent à l'intérieur du dossier docker et sont montés sur le conteneur /etc/pihole dossier. Lorsque le conteneur est démarré, le contenu du fichier /etc/pihole  du conteneur dossier sera écrit sur le etc-pihole de mon Synology NAS dossier. Si vous souhaitez sauvegarder un conteneur, les dossiers que vous montez pour chaque conteneur contiennent toutes vos données personnelles. Ce sont les dossiers importants qui doivent être sauvegardés. Le reste est simplement une configuration qui peut être créée sur une installation NAS ou Docker distincte.

Cette partie suivante est un peu délicate - vous pouvez écraser un fichier spécifique sur le conteneur en créant une version locale de ce fichier et en sélectionnant le chemin exact où ce fichier existe sur le conteneur. Un exemple de cela est le resolv.conf fichier dans la capture d'écran ci-dessous. Lorsque le conteneur s'exécute, le fichier resolv.conf sur le conteneur sera remplacé par le contenu du fichier resolv.conf sur le Synology NAS . Pour réitérer, si vous souhaitez mettre à jour un fichier sur le conteneur, créez un fichier local sur votre Synology NAS et mappez ce fichier sur le fichier interne du conteneur.

2. Interface réseau Macvlan et pont

Il existe des situations où un conteneur docker utilisera certains ports (80/443 par exemple) et l'interface réseau hôte utilise déjà ces ports pour autre chose. Lorsque cela se produit, un conflit de port empêchera le conteneur de fonctionner correctement. Dans de telles situations, vous disposez de deux méthodes principales pour résoudre le problème :

  1. Modifiez le port local afin d'utiliser quelque chose de différent. Par exemple, si le conteneur Docker souhaite utiliser le port 80, modifiez le port local. être quelque chose de différent, comme 8080 comme indiqué ci-dessous. Pour accéder au conteneur Docker, vous devez alors utiliser l'adresse IP de votre Synology NAS et le port local (http://[SYNOLOGY_NAS_IP]:8080).

2. Créez une interface réseau macvlan et un pont réseau. Une interface réseau macvlan évitera tous les conflits de port car vous spécifiez une adresse IP unique que le conteneur que vous créez utilisera. Cela signifie que vous accéderez à ce conteneur en utilisant une adresse IP complètement différente de celle de votre Synology NAS. Par défaut, votre hôte (Synology NAS) ne pourra pas communiquer avec votre conteneur. Pour cette raison, un pont réseau est nécessaire pour que l'hôte (Synology NAS) et le conteneur puissent communiquer. Pour être clair, si le Synology NAS doit communiquer avec le conteneur, vous utiliserez l'adresse IP du réseau de pont et NON l'adresse IP macvlan.

2.1 Comment créer des interfaces réseau Macvlan et Bridge

1. SSH dans votre Synology NAS à l'aide de votre outil SSH préféré.

2. Tout d'abord, nous devons déterminer quelles interfaces réseau existent actuellement (sur votre Synology NAS) et noter le nom de l'adaptateur. Pour ce faire, exécutez la commande ci-dessous et notez le nom de l'interface réseau qui contient l'adresse IP de votre Synology NAS (dans cet exemple, la mienne est eth0).

ifconfig

3. Ensuite, vous devez exécuter la commande ci-dessous tout en remplaçant le sous-réseau correct (la plupart sont 192.168.1.0/24 par défaut). Vous devez également choisir une adresse IP que vous souhaitez utiliser et qui n'est pas utilisée actuellement. J'utiliserai 192.168.1.198. REMARQUE :ph_network sera le nom du réseau (vous pouvez le remplacer comme vous le souhaitez).

sudo docker network create -d macvlan -o parent=eth0 --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ip-range=192.168.1.198/32 ph_network

Notre réseau est maintenant créé. Nous pouvons ensuite quitter notre session SSH et la désactiver dans DSM (si vous ne l'utilisez pas). Si vous le désactivez et avez créé une règle de pare-feu pour lui, vous devez également désactiver la règle de pare-feu.

4. Ensuite, nous devons créer un réseau de ponts. C'est ce qui va permettre à notre hébergeur (NAS) de communiquer avec notre conteneur. Ouvrez Docker et accédez au Réseau section. Sélectionnez Ajouter et entrez un sous-réseau qui n'est pas utilisé actuellement. L'adresse IP du pont que je crée sera 192.168.10.2. REMARQUE : ph_bridge sera le nom du réseau - vous pouvez le remplacer par le nom que vous souhaitez.

7. Nos nouveaux réseaux sont maintenant créés. Nous pouvons ensuite quitter notre session SSH et la désactiver dans DSM (si vous ne l'utilisez pas). Si vous le désactivez et avez créé une règle de pare-feu pour lui, vous devez également désactiver la règle de pare-feu.

8. Lorsque vous créez votre conteneur, supprimez le réseau de pont et ajoutez les deux réseaux (ph_network et ph_bridge, mais le vôtre peut être nommé différemment) au conteneur.

Le conteneur utilisera désormais les bons réseaux ! Vous éviterez tout conflit de port qui se serait produit, disposerez d'une adresse IP unique pour le conteneur et pourrez communiquer entre l'hôte (Synology NAS) et le conteneur à l'aide du réseau de pont !

3. Variables d'environnement

Par défaut, de nombreux conteneurs Docker ont des variables d'environnement que vous pouvez modifier pour modifier les paramètres du conteneur. Il n'y a pas de variables d'environnement standard dans les conteneurs et bien que certains partagent des noms de variables, il est toujours suggéré de consulter la documentation et de déterminer les variables d'environnement que vous souhaitez utiliser. Le conteneur sera livré en standard avec certaines variables, mais vous avez la possibilité de les modifier ou d'en ajouter de nouvelles avant la création du conteneur.

Ceci est un exemple des détails de la variable d'environnement Pi-Hole répertoriés dans la documentation.

Dans le conteneur Docker de votre Synology NAS, l'Environnement est l'endroit où vous pouvez ajouter, supprimer ou modifier des variables d'environnement.

4. Comment accéder à un conteneur via l'interface de ligne de commande (CLI)

Dans certaines situations, vous devrez ou voudrez accéder aux fichiers du conteneur. Que vous ayez besoin de modifier quelque chose (en montant un volume de fichiers) ou d'afficher la structure, il existe un moyen de le faire sur un Synology NAS, mais cela doit être fait via SSH.

1. Démarrez votre conteneur ! Si le conteneur n'est pas démarré, vous ne pourrez pas accéder au conteneur !

2. Assurez-vous que vous pouvez vous connecter en SSH à votre Synology NAS. Ouvrez le Panneau de configuration , sélectionnez Terminal et SNMP , et Activer SSH service. Si vous utilisez le pare-feu de Synology, assurez-vous d'autoriser le trafic du port 22 . J'ai créé une vidéo expliquant comment vous connecter en SSH à votre Synology NAS si vous rencontrez des problèmes.

3. Exécutez la commande ci-dessous pour répertorier les conteneurs en cours d'exécution. Copiez l'ID de conteneur.

sudo docker container ls

4. Exécutez la commande ci-dessous et remplacez l'ID de conteneur trouvé ci-dessus.

sudo docker exec -it CONTAINER_ID bash

5. Vous allez maintenant être connecté en tant qu'utilisateur root pour le conteneur !

5. Docker Compose – Synology NAS

Cela peut surprendre certains, mais vous pouvez utiliser Docker Compose dès que Docker est installé sur un Synology NAS. Pour ceux qui ne le savent pas, Docker Compose vous permet de créer des conteneurs à partir d'un fichier de configuration YAML avec une seule commande. Tout est exécuté via l'interface de ligne de commande (CLI) et certains utilisateurs trouvent cela plus facile. Si vous envisagez de l'utiliser, vous souhaiterez peut-être mettre à jour Docker Compose car il s'agit d'une version légèrement obsolète.

Quelques avantages de Docker Compose sur un NAS Synology :

  • Tout est géré via l'interface de ligne de commande (CLI). Si vous êtes à l'aise avec la CLI, vous trouverez probablement cela beaucoup plus facile que de configurer manuellement les conteneurs dans l'interface graphique de Synology.
  • Docker Compose est indépendant du système, ce qui signifie que le fichier de configuration et les dossiers de données peuvent être transférés vers tout autre système exécutant Docker Compose et qu'il fonctionnera comme prévu. Il s'agit d'une différence flagrante par rapport à l'interface graphique Docker de Synology, car vous pouvez sauvegarder les données importantes du conteneur, mais vous ne pouvez pas les transférer facilement vers un autre système d'exploitation.

Quelques inconvénients de Docker Compose sur un NAS Synology :

  • Tout se fait via l'interface de ligne de commande (CLI). Si vous n'êtes pas à l'aise avec l'interface de ligne de commande, il vous sera probablement plus facile de tout gérer dans l'interface graphique.
  • Étant donné que le fichier Docker Compose contient toute la configuration, vous devez vous assurer que ce fichier est parfaitement configuré, sinon vous supprimerez/recréerez les conteneurs régulièrement pour tester et vous assurer que tout fonctionne comme prévu.

5.1 Comment créer un conteneur à l'aide de Docker Compose

1. Déplacez le fichier docker-compose.yaml fichier que vous avez créé dans le dossier du conteneur que vous allez créer.

2. Assurez-vous que vous pouvez vous connecter en SSH à votre Synology NAS. Ouvrez le Panneau de configuration , sélectionnez Terminal et SNMP , et Activer SSH service. Si vous utilisez le pare-feu de Synology, assurez-vous d'autoriser le trafic du port 22 . J'ai créé une vidéo expliquant comment vous connecter en SSH à votre Synology NAS si vous rencontrez des problèmes.

3. Accédez au menu fixe  l'emplacement du dossier sur votre Synology NAS et le sous-dossier du conteneur que vous allez créer. Pour la plupart des gens, le dossier sera stocké sur le volume1, mais si vous utilisez plusieurs volumes, cela pourrait être quelque chose de différent.

cd /volume1/docker/[conatiner_folder]

4. Après avoir confirmé que le fichier docker-compose.yaml est situé dans le dossier actuel, exécutez la commande ci-dessous pour créer le conteneur. Le conteneur va maintenant démarrer !

sudo docker-compose up --detach

6. Conclusion - Comment utiliser Docker sur un Synology NAS

Il existe une tonne de conteneurs Docker différents que vous pouvez créer sur un Synology NAS. J'espère que la vidéo fournie explique tout d'une manière facilement compréhensible, mais il est important de souligner le fonctionnement de l'interface graphique Docker afin que vous puissiez installer le conteneur de votre choix. Le processus sera le même pour tous les conteneurs et nous espérons vous avoir montré comment utiliser Docker sur un NAS Synology !

Comme toujours, si vous avez des questions, n'hésitez pas à les laisser dans les commentaires !


Docker
  1. Comment configurer Apache Guacamole sur un Raspberry Pi !

  2. Comment utiliser les profils de service pour simplifier les piles dans Docker Compose

  3. Installer le serveur VPN Wireguard avec Docker

  4. Comment mettre à jour un conteneur Docker à l'aide de Portainer

  5. Installation et utilisation de Docker sur CentOS et Fedora

Renforcement de la configuration SSH

Installer/Mettre à jour PHP 8.1 sur Fedora Linux 35

Comment installer PuTTY sur Debian 11 Bullseye

Gestion des applications d'un nœud à l'aide de PM2

Comment installer NetBeans sur Ubuntu 20.04 LTS

Message ennuyeux "ubuntu One Discontinuing" ?