GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So verwenden Sie Docker auf einem Synology NAS

Heute sehen wir uns an, wie Docker auf einem Synology NAS verwendet wird.

Der Großteil der Erklärung erfolgt durch das obige Video , aber es ist wichtig, bestimmte Punkte zu dokumentieren. Die Docker-Implementierung auf einem Synology NAS ist sehr leistungsfähig, wenn Sie sie verstehen, aber sie ist etwas verwirrend, wenn Sie anfangen. Während ich spezifische Tutorials erstelle, die Sie durch die Implementierung bestimmter Container führen, ist es mein Ziel, Ihnen das Wissen zu vermitteln, das Sie benötigen, um jeden Container zu implementieren, den Sie möchten.

1. Volume-Mounting – Verwendung von Synology NAS Docker

Beim Erstellen eines Docker-Containers müssen die wichtigen Daten einem lokalen Ordner zugeordnet werden. Dies wird im Band vervollständigt Abschnitt, in dem ein lokaler Ordner einem Containerordner zugeordnet wird. Wenn der Container ausgeführt wird, wird der Ordnerspeicherort des Containers im Mount-Pfad unten in die Datei/den Ordner geschrieben, die/der auf Ihrem Synology NAS eingegeben wurde. Alle Daten, die im lokalen Synology NAS-Ordner geändert werden, werden in den Container-Ordner geschrieben.

Es ist wichtig zu betonen, dass Sie keine Ordner bereitstellen können, die Sie möchten. Wenn Sie ein Image aus der Registrierung herunterladen, bringt Sie ein kleines Symbol (siehe unten) zur Dokumentation für diesen Container. Sie können diese Dokumentation durchsuchen, um zu sehen, welche Ordner gemountet werden können.

Nachdem Sie zur Dokumentation navigiert sind, müssen Sie die Seite durchsuchen, um zu sehen, welche Volumes gemountet werden können. Leider ist die gesamte Dokumentation unterschiedlich, sodass Sie sie durchsuchen müssen, um die Volume-Informationen zu finden. Am Beispiel von Pi-Hole wird eine Beispiel-Docker-Compose-Datei bereitgestellt. Unter den Bänden finden Sie die beiden Volumes, die gemountet werden können.

Mit ./etc-pihole/:/etc/pihole/ als Beispiel etc-pihole ist der lokale Ordner und /etc/pihole ist der Ordner des Containers. Sie können dies ganz einfach auf ein Synology NAS übertragen, indem Sie im Docker Unterordner erstellen Ordner und Mounten dieses Ordnerspeicherorts im Ordner des Containers. Unter Verwendung des Screenshots unten habe ich einen Ordner mit dem Namen pi-hole erstellt und einen Unterordner namens etc-pihole . Diese Ordner befinden sich im Docker-Ordner und sind in /etc/pihole des Containers gemountet Mappe. Wenn der Container gestartet wird, wird der Inhalt der Datei /etc/pihole  des Containers wird in das etc-pihole meines Synology NAS geschrieben Mappe. Wenn Sie daran interessiert sind, einen Container zu sichern, enthalten die Ordner, die Sie für jeden Container bereitstellen, alle Ihre persönlichen Daten. Dies sind die wichtigen Ordner, die gesichert werden müssen. Der Rest ist einfach eine Konfiguration, die auf einer separaten NAS- oder Docker-Installation erstellt werden kann.

Dieser nächste Teil ist ein wenig knifflig – Sie können eine bestimmte Datei im Container überschreiben, indem Sie eine lokale Version dieser Datei erstellen und den genauen Pfad auswählen, in dem sich diese Datei im Container befindet. Ein Beispiel dafür ist die resolv.conf Datei im Screenshot unten. Wenn der Container ausgeführt wird, wird die Datei „resolv.conf“ im Container gespeichert wird durch den Inhalt der resolv.conf-Datei auf dem Synology NAS ersetzt . Um es noch einmal zu wiederholen:Wenn Sie eine Datei im Container aktualisieren möchten, erstellen Sie eine lokale Datei auf Ihrem Synology NAS und ordnen Sie diese Datei der internen Datei des Containers zu.

2. Macvlan- und Bridge-Netzwerkschnittstelle

Es gibt Situationen, in denen ein Docker-Container bestimmte Ports verwendet (z. B. 80/443) und die Host-Netzwerkschnittstelle diese Ports bereits für etwas anderes verwendet. In diesem Fall verhindert ein Portkonflikt, dass der Container ordnungsgemäß funktioniert. In Situationen wie dieser haben Sie im Wesentlichen zwei Möglichkeiten, das Problem zu beheben:

  1. Ändern Sie den lokalen Port, sodass Sie einen anderen verwenden. Wenn der Docker-Container beispielsweise Port 80 verwenden möchte, ändern Sie den Lokalen Port etwas anderes sein, wie 8080 wie unten gezeigt. Um auf den Docker-Container zuzugreifen, verwenden Sie dann die IP-Adresse Ihres Synology NAS und den lokalen Port (http://[SYNOLOGY_NAS_IP]:8080).

2. Erstellen Sie eine Macvlan-Netzwerkschnittstelle und ein Bridge-Netzwerk. Eine Macvlan-Netzwerkschnittstelle vermeidet alle Portkonflikte, da Sie eine eindeutige IP-Adresse angeben, die der von Ihnen erstellte Container verwenden wird. Das bedeutet, dass Sie mit einer völlig anderen IP-Adresse als Ihrem Synology NAS auf diesen Container zugreifen. Standardmäßig kann Ihr Host (Synology NAS) nicht mit Ihrem Container kommunizieren. Aus diesem Grund ist ein Bridge-Netzwerk erforderlich, damit der Host (Synology NAS) und der Container kommunizieren können. Zur Klarstellung:Wenn der Synology NAS mit dem Container kommunizieren muss, verwenden Sie die Bridge-Netzwerk-IP-Adresse und NICHT die macvlan-IP-Adresse.

2.1 So erstellen Sie Macvlan- und Bridge-Netzwerkschnittstellen

1. SSH mit Ihrem bevorzugten SSH-Tool in Ihr Synology NAS.

2. Zuerst müssen wir feststellen, welche Netzwerkschnittstellen derzeit vorhanden sind (auf Ihrem Synology NAS) und den Adapternamen notieren. Führen Sie dazu den folgenden Befehl aus und notieren Sie sich den Namen der Netzwerkschnittstelle, die die IP-Adresse Ihres Synology NAS hat (in diesem Beispiel ist meine eth0).

ifconfig

3. Als nächstes müssen Sie den folgenden Befehl ausführen, während Sie das richtige Subnetz ersetzen (die meisten sind standardmäßig 192.168.1.0/24). Sie müssen auch eine IP-Adresse auswählen, die Sie verwenden möchten, die derzeit nicht verwendet wird. Ich werde 192.168.1.198 verwenden. HINWEIS :ph_network ist der Name des Netzwerks (Sie können dies nach Belieben ersetzen).

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

Unser Netzwerk ist nun erstellt. Wir können dann unsere SSH-Sitzung beenden und sie in DSM deaktivieren (falls Sie sie nicht verwenden). Wenn Sie es deaktivieren und eine Firewall-Regel dafür erstellt haben, sollten Sie auch die Firewall-Regel deaktivieren.

4. Als nächstes müssen wir ein Bridge-Netzwerk erstellen. Dadurch kann unser Host (NAS) mit unserem Container kommunizieren. Öffnen Sie Docker und navigieren Sie zum Netzwerk Sektion. Wählen Sie Hinzufügen und geben Sie ein Subnetz ein, das derzeit nicht verwendet wird. Die IP-Adresse der Bridge, die ich erstelle, lautet 192.168.10.2. HINWEIS: ph_bridge ist der Name des Netzwerks – Sie können diesen durch den gewünschten Namen ersetzen.

7. Unsere neuen Netzwerke sind jetzt erstellt. Wir können dann unsere SSH-Sitzung beenden und sie in DSM deaktivieren (falls Sie sie nicht verwenden). Wenn Sie es deaktivieren und eine Firewall-Regel dafür erstellt haben, sollten Sie auch die Firewall-Regel deaktivieren.

8. Wenn Sie Ihren Container erstellen, entfernen Sie das Bridge-Netzwerk und fügen Sie die beiden Netzwerke (ph_network und ph_bridge, aber Ihres könnte anders heißen) zum Container hinzu.

Der Container verwendet nun die richtigen Netzwerke! Sie vermeiden eventuell auftretende Portkonflikte, haben eine eindeutige IP-Adresse für den Container und können über das Bridge-Netzwerk zwischen dem Host (Synology NAS) und dem Container kommunizieren!

3. Umgebungsvariablen

Standardmäßig verfügen viele Docker-Container über Umgebungsvariablen, die Sie ändern können, um die Einstellungen des Containers zu ändern. Containerübergreifend gibt es keine standardmäßigen Umgebungsvariablen, und obwohl einige Variablennamen identisch sind, wird immer empfohlen, die Dokumentation einzusehen und festzustellen, welche Umgebungsvariablen Sie verwenden möchten. Der Container wird standardmäßig mit bestimmten Variablen geliefert, aber Sie haben die Möglichkeit, diese zu ändern oder neue hinzuzufügen, bevor der Container erstellt wird.

Dies ist ein Beispiel für die Details der Pi-Hole-Umgebungsvariablen, die in der Dokumentation aufgeführt sind.

Im Docker-Container auf Ihrem Synology NAS die Umgebung Im Abschnitt können Sie Umgebungsvariablen hinzufügen, entfernen oder ändern.

4. So greifen Sie über die Befehlszeilenschnittstelle (CLI) auf einen Container zu

Es gibt bestimmte Situationen, in denen Sie auf die Dateien des Containers zugreifen müssen oder möchten. Unabhängig davon, ob Sie etwas ändern (durch Mounten eines Datei-Volumes) oder die Struktur anzeigen müssen, es gibt eine Möglichkeit, dies auf einem Synology NAS zu tun, aber es muss über SSH erfolgen.

1. Starten Sie Ihren Container! Wenn der Container nicht gestartet ist, können Sie nicht auf den Container zugreifen!

2. Stellen Sie sicher, dass Sie sich per SSH mit Ihrem Synology NAS verbinden können. Öffnen Sie die Systemsteuerung , wählen Sie Terminal &SNMP aus , und aktivieren Sie SSH Service. Wenn Sie die Firewall von Synology verwenden, stellen Sie sicher, dass Sie Datenverkehr über Port 22 zulassen . Ich habe ein Video darüber erstellt, wie Sie bei Problemen eine SSH-Verbindung zu Ihrem Synology NAS herstellen können.

3. Führen Sie den folgenden Befehl aus, um die ausgeführten Container aufzulisten. Kopieren Sie die Container-ID.

sudo docker container ls

4. Führen Sie den folgenden Befehl aus und ersetzen Sie die Container-ID oben gefunden.

sudo docker exec -it CONTAINER_ID bash

5. Sie werden nun als Root-Benutzer für den Container verbunden!

5. Docker Compose – Synology NAS

Es mag für einige überraschend sein, aber Sie können Docker Compose verwenden, sobald Docker auf einem Synology NAS installiert ist. Für alle, die es nicht wissen, Docker Compose ermöglicht es Ihnen, Container aus einer YAML-Konfigurationsdatei mit einem einzigen Befehl zu erstellen. Alles wird über die Befehlszeilenschnittstelle (CLI) ausgeführt, und einige Benutzer finden es einfacher. Wenn Sie dies verwenden möchten, sollten Sie Docker Compose aktualisieren, da es sich um eine etwas veraltete Version handelt.

Einige Vorteile von Docker Compose auf einem Synology NAS:

  • Alles wird über die Befehlszeilenschnittstelle (CLI) verwaltet. Wenn Sie mit der CLI vertraut sind, werden Sie sie höchstwahrscheinlich viel einfacher finden, als Container manuell in der GUI von Synology zu konfigurieren.
  • Docker Compose ist systemunabhängig, was bedeutet, dass die Konfigurationsdatei und die Datenordner auf jedes andere System übertragen werden können, auf dem Docker Compose ausgeführt wird, und es wird wie erwartet funktionieren. Dies ist ein deutlicher Unterschied zur Docker-GUI von Synology, da Sie die wichtigen Containerdaten sichern, aber nicht einfach auf ein anderes Betriebssystem portieren können.

Ein paar Nachteile von Docker Compose auf einem Synology NAS:

  • Alles wird über die Befehlszeilenschnittstelle (CLI) erledigt. Wenn Sie mit der CLI nicht vertraut sind, ist es wahrscheinlich einfacher für Sie, alles in der GUI zu verwalten.
  • Da die Docker Compose-Datei die gesamte Konfiguration enthält, müssen Sie sicherstellen, dass diese Datei perfekt eingerichtet ist, oder Sie werden die Container regelmäßig löschen/neu erstellen, um zu testen und sicherzustellen, dass alles wie erwartet funktioniert.

5.1 So erstellen Sie einen Container mit Docker Compose

1. Verschieben Sie die docker-compose.yaml Datei, die Sie erstellt haben, in den Ordner des Containers, den Sie erstellen werden.

2. Stellen Sie sicher, dass Sie sich per SSH mit Ihrem Synology NAS verbinden können. Öffnen Sie die Systemsteuerung , wählen Sie Terminal &SNMP aus , und aktivieren Sie SSH Service. Wenn Sie die Firewall von Synology verwenden, stellen Sie sicher, dass Sie Datenverkehr über Port 22 zulassen . Ich habe ein Video darüber erstellt, wie Sie bei Problemen eine SSH-Verbindung zu Ihrem Synology NAS herstellen können.

3. Navigieren Sie zum Docker  Ordnerspeicherort auf Ihrem Synology NAS und den Unterordner für den Container, den Sie erstellen werden. Für die meisten Leute wird der Ordner auf Volume1 gespeichert, aber wenn Sie mehrere Volumes verwenden, könnte es etwas anderes sein.

cd /volume1/docker/[conatiner_folder]

4. Nachdem Sie bestätigt haben, dass die Datei docker-compose.yaml Datei im aktuellen Ordner befindet, führen Sie den folgenden Befehl aus, um den Container zu erstellen. Der Container wird nun gestartet!

sudo docker-compose up --detach

6. Fazit – So verwenden Sie Docker auf einem Synology NAS

Es gibt eine Menge verschiedener Docker-Container, die Sie auf einem Synology NAS erstellen können. Ich hoffe, dass das bereitgestellte Video alles auf leicht verständliche Weise erklärt hat, aber es ist wichtig, hervorzuheben, wie die Docker-GUI funktioniert, damit Sie jeden gewünschten Container installieren können. Der Prozess ist für alle Container gleich und hat Ihnen hoffentlich gezeigt, wie Sie Docker auf einem Synology NAS verwenden!

Wenn Sie Fragen haben, hinterlassen Sie diese wie immer in den Kommentaren!


Docker
  1. So richten Sie eine private Docker-Registrierung in Kubernetes (k8s) ein

  2. Docker installieren (Ubuntu)

  3. So automatisieren Sie Docker-Sicherheitsaudits mit Docker Bench for Security

  4. Nutzung der Docker-Compose-Umgebungsvariablen

  5. So benennen oder umbenennen Sie Docker-Container

So wenden Sie Numix-BLACK-Colors-Design und -Symbole auf Ubuntu 20.04 LTS an

So installieren und konfigurieren Sie Smartctl unter CentOS/RHEL 8 und Ubuntu 20.04

So installieren Sie Pigz, um Dateien unter Linux schneller zu komprimieren

So installieren Sie AnyDesk auf Fedora 35 / Fedora 34

Installieren Sie Kloxo Webhosting Control Panel in RHEL/CentOS 5.x

Verwenden des Festplattendienstprogramms als Sudo-Benutzer in Unity oder auf Cli?