Projekt

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 sindweb und db als zwei Dienste definiert.

  • image: Gibt das für den Dienst verwendete Docker-Image an, z. B. nginx und mysql.

  • ports: Ordnet Ports zwischen dem Host und dem Container zu. Beispielsweise ordnet 90:80 den Port 90 auf dem NAS-Host dem Port 80 im Container zu, sodass der Zugriff auf den Container über NAS_IP:90 mö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 Namen mydatabase.

  • MYSQL_USER: Erstellt einen Datenbankbenutzer namens user.

  • 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 ./html auf ein Verzeichnis auf UGOS Pro, nämlich das Unterverzeichnishtml im 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/html des 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.