Verwalten und Anpassen von Containern
Diese Seite wurde erstellt, um Benutzern aller Fähigkeitsstufen zu helfen, das Beste aus Docker-Containern auf Unraid OS herauszuholen. Die Tipps und Best Practices stammen vom Unraid-Team, das sicherstellt, dass sie auf die Bedürfnisse der meisten Benutzer zugeschnitten sind. Beachten Sie jedoch, dass Docker ständig weiterentwickelt wird. Für die aktuellsten Funktionen, erweiterte Konfigurationen oder Problembehebungen, die über das hinausgehen, was Unraid abdeckt, ist es immer eine gute Idee, die offizielle Docker-Dokumentation zu konsultieren.
Bevor Sie einen Docker-Container in Unraid anpassen, ist es hilfreich, die grundlegenden Konfigurationsoptionen zu verstehen. Jede Container-Vorlage bietet eine benutzerfreundliche Oberfläche zur Einrichtung von Netzwerk, Speicher und Umgebungsvariablen, sodass Sie das Verhalten des Containers an Ihre Bedürfnisse anpassen können, ohne komplexe Befehlszeilen-Tools verwenden zu müssen.
- Netzwerktyp
- Volumenabbildungen
- Portabbildungen
- Umgebungsvariablen
Unraid unterstützt mehrere Docker-Netzwerkmodi. Der gewählte Netzwerktyp bestimmt, wie Ihr Container mit anderen Geräten und Containern kommuniziert:
-
Bridge (Standard): Der Container wird in ein internes Docker-Netzwerk eingebunden. Nur explizit zugewiesene Ports sind von Ihrem Unraid-Server oder LAN aus zugänglich. Dies ist die sicherste und gängigste Option für die meisten Anwendungen.
-
Host: Der Container teilt den Netzwerkstapel des Unraid-Servers. Es können beliebige verfügbare Ports verwendet werden, aber Sie müssen sicherstellen, dass keine Portkonflikte mit anderen Diensten entstehen. Verwenden Sie diesen Modus nur, wenn die Anwendung direkten Netzwerkzugriff benötigt.
-
None: Der Container hat keinen Netzwerkzugang. **Verwenden Sie dies für isolierte Arbeitslasten, die keine Netzwerkverbindung erfordern.
-
Benutzerdefiniert (macvlan/ipvlan): Der Container erhält eine eigene IP-Adresse in Ihrem LAN und erscheint als separates Gerät. Dies ist nützlich für fortgeschrittene Szenarien, kann jedoch zusätzliche Konfigurationen in Ihrer Netzwerkumgebung erfordern.
Der in der Container-Vorlage angegebene Standardnetzwerktyp wird für die meisten Benutzer empfohlen.
Docker has a limitation that prevents it from participating in two networks that share the same subnet. If you switch between a wired and a wireless connection, you will need to restart Docker and reconfigure all existing containers to use the new interface. This network configuration change requires container reconfiguration.
Volumenabbildungen bestimmen, wie Ihr Container auf Dateien auf Ihrem Unraid-Server zugreift. Jede Abbildung verknüpft einen Ordner innerhalb des Containers (Containerpfad) mit einem Ordner auf Ihrem Unraid-Server (Host-Pfad).
- Container-Pfad: Das Verzeichnis im Container (z.B.
/config
oder/unraid_media
). - Host-Pfad: Das Verzeichnis auf Ihrem Unraid-Server (z.B.
/mnt/user/appdata/myapp
). - Zugriffsmodus: Steuert Berechtigungen - Nur-Lesezugriff oder Lese-/Schreibzugriff. Verwenden Sie den restriktivsten Modus, der die Funktion des Containers noch ermöglicht.
Anwendungsdaten (Einstellungen, Bibliotheken usw.) außerhalb des Containers speichern, typischerweise im appdata
user share. Dieser Share-Verwaltungsansatz schützt Ihre Daten während Aktualisierungen oder Neuinstallationen.
- Pfade sind case-sensitiv.
- Containerpfade sollten mit einem
/
beginnen. - Wenn ein nicht zugewiesenes Gerät als Host-Pfad verwendet wird, setzen Sie den Zugriffsmodus auf eine "Slave"-Option, um eine ordnungsgemäße Erkennung sicherzustellen.
- Host-Pfade werden automatisch erstellt, wenn sie nicht existieren, sobald der Container startet.
- Unerwartete Ordner, die auf Ihrem Server erscheinen, können auf eine falsch konfigurierte Zuordnung hinweisen.
Port-Zuordnungen bestimmen, wie der Netzwerkverkehr von Ihrem Unraid-Server zum Container geleitet wird.
-
Bridge-Netzwerk: Sie können interne Container-Ports auf unterschiedliche Host-Ports abbilden. Wenn beispielsweise drei Container intern Port 8000 verwenden, können Sie sie auf dem Host auf 8000, 8001 und 8002 abbilden.
-
Host-Netzwerk: Der Container kann jeden verfügbaren Port verwenden. Vermeiden Sie es, mehrere Container mit dem gleichen Port auszuführen, um Konflikte zu verhindern.
Ändern Sie nur den Wert des Host-Ports. Ändern Sie den Container-Port nicht, es sei denn, Sie wissen, dass die Anwendung dies unterstützt.
Die meisten Vorlagen bieten sinnvolle Standardwerte, aber Sie können Port-Zuordnungen hinzufügen oder anpassen.
Umgebungsvariablen können das Verhalten Ihres Docker-Containers zur Laufzeit anpassen. Sie ermöglichen es Ihnen, Schlüssel-Wert-Paare zu übergeben, die Ihre containerisierte Anwendung lesen und verwenden kann.
Häufige Anwendungsfälle für Umgebungsvariablen
- Die Zeitzone festlegen
- Benutzer- und Gruppen-IDs konfigurieren
- Sprachpräferenzen angeben
- Anwendungsspezifische Einstellungen wie API-Schlüssel oder Feature-Flags anpassen
Umgebungsvariablen im WebGUI verwalten
- Sie können Umgebungsvariablen im Konfigurationsbildschirm des Containers über das WebGUI hinzufügen, bearbeiten oder entfernen.
- Viele Container-Vorlagen sind bereits mit allgemeinen Umgebungsvariablen versehen, aber Sie können jederzeit weitere hinzufügen, wenn nötig.
- Stellen Sie sicher, dass Sie die spezifische Dokumentation der Anwendung überprüfen, um zu wissen, welche Umgebungsvariablen verfügbar sind und welche Werte gültig sind.
TZ=America/New_York
: Dies setzt die Zeitzone des Containers.PUID=99
undPGID=100
: Diese setzen die Benutzer- und Gruppen-IDs für Dateiberechtigungen.UMASK=022
: Dies steuert die standardmäßigen Dateiberechtigungen für erstellte Dateien.API_KEY=your_api_key_here
: Dies könnte von einer Anwendung zur Authentifizierung mit einem externen Dienst verwendet werden.
Verwenden Sie Umgebungsvariablen, um zu vermeiden, dass sensible oder umgebungsspezifische Informationen fest in Ihre Container-Images codiert werden. Diese Praxis verbessert die Portabilität und Sicherheit Ihrer Container.
Container erstellen und starten
Sobald Sie das Netzwerk, die Volumenzuordnungen, Portzuordnungen und Umgebungsvariablen Ihres Containers konfiguriert haben, sind Sie bereit, Ihren Docker-Container zu erstellen und zu starten. Dieser Abschnitt führt Sie durch den Erstellungsprozess, erklärt, wie man die Startreihenfolge und Abhängigkeiten verwaltet, und bietet Tipps für eine erweiterte Startanpassung.
Container erstellen
Nachdem Sie Ihre Konfigurationseinstellungen in der Container-Vorlage überprüft haben:
- Klicken Sie auf Erstellen, um den Download zu starten und den Container einzurichten.
- Vermeiden Sie es, Ihr Browserfenster zu schließen oder die Seite zu wechseln, bis der Prozess abgeschlossen ist.
- Der erste Download eines neuen Repositories kann länger dauern als nachfolgende Downloads.
- Sobald der Prozess abgeschlossen ist, klicken Sie auf Fertig, um zur Docker-Seite zurückzukehren, wo Sie weitere Container verwalten oder hinzufügen können.
Startreihenfolge planen
Einige Container sind auf andere angewiesen, um korrekt zu funktionieren. Ein Beispiel dafür ist, dass eine Anwendung möglicherweise zuerst einen laufenden Datenbank-Container benötigt, oder ein Dienst einen aktiven VPN-Container, bevor er starten kann.
- Identifizieren Sie Container, die grundlegende Dienste bieten (wie Datenbanken, VPNs oder Speichergateways).
- Stellen Sie sicher, dass abhängige Container erst gestartet werden, nachdem ihre Voraussetzungen laufen und bereit sind.
- Überprüfen Sie die Dokumentation für jeden Container, um spezifische Startanforderungen zu verstehen.
Erweiterter Container-Start
Unraid gibt Ihnen flexible Kontrolle darüber, welche Container automatisch starten und in welcher Reihenfolge dies geschieht. Dies ist besonders nützlich, wenn Sie Container haben, die von anderen abhängig sind (wie eine Datenbank oder ein VPN-Dienst).
Um sicherzustellen, dass ein Container automatisch startet, wenn das array startet:
- Gehen Sie auf der WebGUI-Karte zur Docker-Registerkarte.
- Schalten Sie den Automatisch-Starten-Schalter auf EIN für jeden Container, den Sie automatisch starten möchten.
Anpassung der Startreihenfolge und Verzögerungen
Standardmäßig startet Unraid alle Auto-Start-Container so schnell wie möglich in der Reihenfolge, wie sie auf dem Docker-Tab erscheinen. Sie können diese Reihenfolge anpassen und Wartezeiten zwischen Container-Starts hinzufügen:
- Auf der Docker-Registerkarte entsperren Sie die Container-Liste mit dem Vorhängeschloss-Symbol.
- Ziehen und ablegen, um die Reihenfolge der Container zu ändern.
- Wechseln Sie oben rechts mit dem Schalter zur Erweiterten Ansicht.
- Geben Sie in der AutoStart-Spalte eine Wartezeit (in Sekunden) in das Warte-Feld für alle Container ein, die zusätzliche Zeit benötigen, bevor der nächste startet.
- Benutzen Sie Versuch und Irrtum, um die besten Wartezeiten für Ihr Setup zu bestimmen.
Das Festlegen der korrekten Reihenfolge und Wartezeiten ist besonders wichtig für Container, die von Diensten anderer abhängen (beispielsweise das Starten einer Datenbank vor einer App, die sie verwendet, oder eines VPN vor abhängigen Apps).
Testen Ihrer Startsequenz
Während Unraid keine spezielle "Test-Startsequenz"-Funktion besitzt, können Sie Ihre Startreihenfolge simulieren und überprüfen:
- Aus allen Containern von der Docker-Registerkarte stoppen.
- Starten Sie jeden Container manuell in der geplanten Reihenfolge mit dem Start-Knopf.
- Überwachen Sie die Containerprotokolle und das Anwendungsverhalten, um sicherzustellen, dass die Abhängigkeiten erfüllt sind und die Dienste wie erwartet initialisieren.
- Passen Sie bei Bedarf die Startreihenfolge oder die Wartezeiten an.
Testen Sie Ihre Startsequenz erneut, nachdem Sie Container-Abhängigkeiten geändert oder neue Dienste hinzugefügt haben, besonders wenn Ihr Setup auf einem bestimmten Startzeitpunkt basiert.
Ihre Container verwalten
Sobald Sie Ihren Docker-Container erstellt und gestartet haben, ist die Verwaltung über das WebGUI einfach. Diese Anleitung führt Sie durch die Verwendung des Kontextmenüs, das Verständnis von Container-Gesundheitsindikatoren und den Zugriff auf Volumenzuordnungen innerhalb Ihres Containers.
Um auf das Kontextmenü des Containers zuzugreifen, gehen Sie zum Docker- oder Dashboard-Tab und klicken Sie auf das Symbol des Containers, den Sie verwalten möchten. Dieses Menü bietet einfachen Zugriff auf gängige Aktionen:
Optionen | Beschreibung |
---|---|
WebUI | Öffnet die Weboberfläche des Containers in einem neuen Browser-Tab (falls verfügbar). |
Konsole | Öffnet eine Kommandozeilenschnittstelle zur direkten Interaktion mit dem Container. |
Stoppen | Stoppt den laufenden Container. |
Pause | Pausiert den Container und stoppt alle Prozesse vorübergehend. |
Neustart | Startet den Container neu und wendet alle Konfigurationsänderungen an. |
Protokolle | Zeigt die Protokolle des Containers zur Problembehandlung an. |
Bearbeiten | Ändern Sie die Containereinstellungen, wie Port- oder Volumenzuordnungen. Änderungen werden sofort nach dem Speichern übernommen. |
Entfernen | Löscht den Container. Sie können wählen, ob Sie nur den Container entfernen oder auch sein Image löschen möchten. |
Projektseite | Öffnet die Projektseite des Containers für Dokumentation und Unterstützung. |
Unterstützung | Bietet Zugang zu Unterstützungsressourcen und Hilfe für den Container. |
Mehr Infos | Zeigt zusätzliche Informationen über den Container und dessen Konfiguration an. |
Gesundheitsindikator
Es befindet sich ein farbiger Gesundheitsindikator neben dem Symbol jedes Containers:
- 🟢 Gesund: Zeigt an, dass der Container läuft und wie erwartet reagiert.
- 🟡 Ungesund: Der Container läuft, hat aber seinen Gesundheitscheck nicht bestanden. Überprüfen Sie die Protokolle oder Containereinstellungen für weitere Informationen.
- ⚪ Kein Gesundheitscheck: Dies bedeutet, dass kein Gesundheitscheck für den Container konfiguriert ist. Das ist üblich für viele Apps und nicht unbedingt ein Problem.
Gesundheitschecks werden vom Container-Author definiert und müssen möglicherweise nicht für alle Images vorhanden sein.
Volume-Mappings innerhalb eines Containers
Beim Konfigurieren Ihrer Anwendung über ihre Weboberfläche beziehen Sie sich auf den Container-Pfad, den Sie während der Konfiguration eingerichtet haben - nicht den Host-Pfad.
Zum Beispiel, wenn Sie /mnt/user/media
auf dem Host zu /unraid_media
im Container zugeordnet haben, sollten Sie in den Einstellungen der Anwendung /unraid_media
verwenden.
Beispielszenarien
Here are some examples showing common path mapping configurations that users frequently need when setting up Docker containers. They demonstrate how to translate between Unraid's host file system paths and the container's internal paths, helping you configure applications correctly.
-
Medienserver: Host-Pfad:
/mnt/user/media
Container-Pfad:/unraid_media
Stellen Sie in der App den Speicherort Ihrer Mediathek auf
/unraid_media
ein. -
Appdata-Speicher: Host-Pfad:
/mnt/user/appdata/myapp
Container-Pfad:/config
Verwenden Sie in der App
/config
für die Konfigurationsspeicherung. -
Mehrere user shares: Host-Pfad:
/mnt/user/media
→ Container-Pfad:/media
Host-Pfad:/mnt/user/data
→ Container-Pfad:/data
Verweisen Sie in der Anwendung bei Bedarf auf
/media
oder/data
.
Verwenden Sie immer den restriktivsten Zugriffsmodus (nur lesen oder lesen/schreiben), der Ihren Container ordnungsgemäß funktionieren lässt.
Planung von Start und Stopp
Unraid unterstützt von Haus aus keine geplanten Start- oder Stopp-Aktionen für Docker-Container, aber Sie können diesen Prozess leicht mit dem User Scripts Plugin automatisieren. Dieses leistungsstarke Tool ermöglicht es Ihnen, benutzerdefinierte Skripte nach einem Zeitplan auszuführen, um eine automatische Steuerung Ihrer Container zu ermöglichen.
Benutzerskripte-Plugin
Das User Scripts Plugin ermöglicht es Ihnen, benutzerdefinierte Shell-Skripte direkt von der WebGUI aus zu erstellen, zu verwalten und zu planen. Sie können es für verschiedene Automatisierungsaufgaben verwenden, wie das Starten oder Stoppen von Containern, das Sichern von Daten oder das Ausführen von Wartungsroutinen.
- Installieren Sie das Plugin über die Apps-Registerkarte, wenn Sie dies noch nicht getan haben.
- Greifen Sie über Einstellungen → Benutzerskripte darauf zu, um Ihre Skripte zu erstellen und zu verwalten.
Um mehr über Plugins zu erfahren, schauen Sie sich Plugins an.
Planung von Containeraktionen
Um das Starten oder Stoppen Ihrer Container nach einem Zeitplan zu automatisieren:
- Installieren Sie das Benutzer-Skripte Plugin aus dem Apps-Tab.
- Navigieren Sie zu Einstellungen → Benutzer-Skripte.
- Erstellen Sie für jede einzigartige Planung ein neues Skript. Sie können Befehle für mehrere Container in einem einzigen Skript einfügen, wenn sie denselben Zeitplan teilen.
- Legen Sie den Zeitplan mit dem Dropdown-Menü fest oder verwenden Sie einen benutzerdefinierten
cron
-Ausdruck für komplexere Zeitoptionen. - Klicken Sie auf Anwenden, um Ihr Skript zu speichern und zu aktivieren.
Cron-Ausdrücke ermöglichen flexible Planungen über die integrierten Optionen hinaus. Zum Beispiel wird 0 3 * * 1
Ihr Skript jeden Montag um 3:00 Uhr morgens ausführen.
Befehl Beispiele
- Container starten
- Container stoppen
- Container neu starten
- Containerstatus überprüfen
- Containerprotokolle anzeigen
Um einen Container zu starten, verwenden Sie den Befehl:
docker start "container-name"
Ersetzen Sie "container-name"
durch den tatsächlichen Namen, wie er auf dem Docker-Tab angezeigt wird.
Um einen Container zu stoppen, verwenden Sie den Befehl:
docker stop "container-name"
Ersetzen Sie "container-name"
durch den tatsächlichen Namen, wie er auf dem Docker-Tab angezeigt wird.
Um einen Container neu zu starten (nützlich nach Konfigurationsänderungen oder zur Fehlerbehebung):
docker restart "container-name"
Ersetzen Sie "container-name"
durch den tatsächlichen Namen, wie er auf dem Docker-Tab angezeigt wird.
Um zu überprüfen, ob ein Container läuft:
docker ps --filter "name=container-name"
Dies wird den Container auflisten, wenn er gerade läuft.
Um die Protokolle eines Containers anzuzeigen (hilfreich zur Fehlerbehebung):
docker logs "container-name"
Dies zeigt die letzten Protokollausgaben für den angegebenen Container an.
Sie finden den Containernamen auf dem Docker-Tab oder indem Sie den docker run
-Befehl im Konfigurationsbildschirm des Containers anzeigen.