Was ist Docker Compose?
Docker Compose ist ein speziell für Docker entwickeltes Tool zum Definieren und Verwalten von Multi-Container-Anwendungen, das die Bereitstellung und Verwaltung komplexer Anwendungen vereinfacht. Einfach ausgedrückt ermöglicht es Ihnen, die verschiedenen Dienste, Netzwerke und Speicherkonfigurationen einer Anwendung in einer einzigen YAML-Datei zu beschreiben und dann alle Dienste mit einem einzigen Befehl zu starten. Wenn Sie mehrere Anwendungen auf UGOS Pro ausführen oder den Bereitstellungsprozess optimieren möchten, ist Docker Compose ein unverzichtbares Tool.
Anwendbare Szenarien
Die Verwendung von Docker Compose auf UGOS Pro eignet sich in der Regel für die folgenden Szenarien:
Verwaltung von Multi-Service-Anwendungen
Wenn Sie auf Ihrem NAS eine komplexe Anwendung ausführen, die aus mehreren Diensten besteht, z. B. einem Webserver, einer Datenbank, einem Cache und einem Reverse-Proxy, können Sie mit Docker Compose diese Dienste in einer einzigen Konfigurationsdatei integrieren, um sie einheitlich zu verwalten und zu warten.
-
Beispiel: Ein typisches WordPress-Projekt könnte einen WordPress-Container und einen MySQL-Container umfassen. Mit Compose können Sie beide Dienste gleichzeitig starten und gleichzeitig sicherstellen, dass ihre Verbindungseinstellungen korrekt konfiguriert sind.
Vereinfachte Anwendungsbereitstellung
Mit einer Docker Compose-Datei können Sie alle Dienste, Netzwerke und Speicher definieren, die für eine containerisierte Anwendung erforderlich sind. Durch Starten aller definierten Dienste mit einem einzigen Befehl verwaltet Docker Compose automatisch die Dienstabhängigkeiten und optimiert so den Prozess der Bereitstellung komplexer Anwendungen über die Docker-Schnittstelle.
Anwendungsportabilität
Docker Compose ermöglicht eine hohe Portabilität für containerisierte Anwendungen. Sie können die gesamte Konfiguration der Anwendung in einer Compose-Datei zusammenfassen und schnell auf verschiedenen UGOS Pro-Geräten bereitstellen, wodurch Konsistenz und Effizienz gewährleistet sind.
Struktur der Docker Compose-Datei
Docker Compose-Dateien haben in der Regel den Namen docker-compose.yaml und verwenden die YAML-Syntax, um Dienste, Netzwerke und Speicher zu definieren. Eine grundlegende Compose-Dateistruktur sieht wie folgt aus:
version: '3'
services:
web:
image: nginx
ports:
- "90:80"
volumes:
- ./html:/usr/share/nginx/html
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
MYSQL_DATABASE: mydatabase
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
- ./data:/var/lib/mysql
-
version: Definiert die Version der Docker Compose-Datei.
-
services: Gibt die Dienste in der Anwendung an. In diesem Beispiel sind
webunddbals zwei Dienste definiert. -
image: Gibt das für den Dienst verwendete Docker-Image an, z. B.
nginxundmysql. -
ports: Ordnet Ports zwischen dem Host und dem Container zu. Beispielsweise ordnet
90:80den Port 90 auf dem NAS-Host dem Port 80 im Container zu, sodass der Zugriff auf den Container überNAS_IP:90möglich ist . -
volumes: Ordnet NAS-Speicherverzeichnisse Container-Verzeichnissen zu, um Daten dauerhaft zu speichern.
-
Umgebung: Legt Umgebungsvariablen für die Dienste innerhalb des Containers fest, z. B. Datenbankkennwörter, API-Schlüssel und andere Konfigurationsoptionen.

Erläuterung der Umgebungsvariablen
In diesem Beispiel:
-
MYSQL_ROOT_PASSWORD: Legt das Root-Passwort für die MySQL-Datenbank auf„example”fest . -
MYSQL_DATABASE: Erstellt eine Datenbank mit dem Namenmydatabase. -
MYSQL_USER: Erstellt einen Datenbankbenutzer namensuser. -
MYSQL_PASSWORD: Legt das Passwort für den oben genannten Benutzer auf„password”fest .
Diese Umgebungsvariablen werden beim Start des Containers an den MySQL-Dienst übergeben und zur Initialisierung der Datenbank verwendet.
So funktioniert das Mounten von Volumes
In der Docker Compose-Datei ist ./html:/usr/share/nginx/html eine Volume-Konfiguration , wobei ./ das Verzeichnis darstellt, in dem sich die Docker Compose-Datei befindet.
-
./html: In diesem Zusammenhang steht./für das Verzeichnis, in dem sich die Docker Compose-Datei befindet. Genauer gesagt bezieht sich./htmlauf ein Verzeichnis auf UGOS Pro, nämlich das Unterverzeichnishtmlim selben Verzeichnis wie die Docker Compose-Datei. -
/usr/share/nginx/html: Bezieht sich auf ein Verzeichnis innerhalb des Containers. Bei Nginx-Containern ist dies der Standardpfad für statische Website-Dateien.
Mit dieser Konfiguration mountet Docker das Verzeichnis ./html auf dem Host in /usr/share/nginx/html innerhalb des Containers und ermöglicht damit:
-
Sofortige Übertragung von Änderungen, die im Verzeichnis
./htmldes Hosts vorgenommen wurden , in das Verzeichnis/usr/share/nginx/htmldes Containers . -
Synchronisierung von Änderungen, die im Container vorgenommen wurden, zurück in das Verzeichnis
./htmldes Hosts .
Weiterführender Link: Wie gibt man Volume-Mount-Pfade in einer Docker-Compose-Konfigurationsdatei korrekt an?
Verwendung von Docker Compose auf UGOS Pro
Angenommen, Sie betreiben ein Heim-Mediacenter auf einem UGREEN NAS. Sie können Docker Compose verwenden, um Dienste wie Jellyfin (Medienserver), MariaDB (Datenbank) und Redis (Cache) zu verwalten. Mit einer einzigen docker-compose. yml-Datei können Sie die Abhängigkeiten, Volume-Mounts und Netzwerkkonfigurationen für diese Dienste definieren und das gesamte Mediacenter mit einfachen Befehlen verwalten.
Schritte zur Bedienung:
1. Projekt erstellen
Öffnen Sie die Docker-Anwendung in UGOS Pro, klicken Sie auf „Projekt“ > „Erstellen“ und geben Sie die folgenden Details ein:
-
Name: Geben Sie einen Namen für das Projekt ein.
-
Speicherpfad: Geben Sie den Pfad an, in dem die Docker Compose-Konfigurationsdatei (
docker-compose.yaml) gespeichert werden soll. -
Compose-Konfiguration: Geben Sie die YAML-Konfiguration direkt ein oder importieren Sie eine vorhandene
docker-compose.yaml-Datei.
2. PUID und PGID festlegen
-
Legen Sie bei Bedarf die PUID- und PGID -Werte fest.
-
Es wird empfohlen, die Benutzer-ID und Gruppen-ID des aktuellen Benutzers zu verwenden, um Berechtigungsprobleme zu vermeiden, die zu Containerfehlern führen könnten.
3. Projekt bereitstellen
-
Nachdem Sie die Konfiguration überprüft haben, klicken Sie auf „Bereitstellen“, um das Projekt zu erstellen.
Wenn Sie diese Schritte befolgen, können Sie Docker Compose zum Starten und Verwalten Ihres gesamten Heim-Media-Centers verwenden. Alle Dienste werden im Hintergrund ausgeführt, wobei die Abhängigkeiten korrekt konfiguriert sind, um einen reibungslosen Betrieb zu gewährleisten.