Verwalten und Anpassen von Containern
:::caution[Disclaimer]
Diese Seite wurde erstellt, um Benutzern aller Fähigkeitsstufen zu helfen, Docker-Container auf Unraid OS optimal zu nutzen. Die Tipps und Best Practices stammen vom Unraid-Team, das sicherstellt, dass sie auf die Bedürfnisse der meisten Benutzer zugeschnitten sind. Bedenken Sie jedoch, dass sich Docker ständig weiterentwickelt. Daher ist es immer eine gute Idee, die offizielle Docker-Dokumentation zu konsultieren, um die neuesten Funktionen, erweiterte Konfigurationen oder Problemlösungen zu finden, die über die Abdeckung von Unraid hinausgehen.
:::
Bevor Sie einen Docker-Container in Unraid anpassen, ist es hilfreich, die grundlegenden Konfigurationsoptionen zu verstehen. Jedes Containervorlage bietet eine benutzerfreundliche Oberfläche zur Einrichtung von Netzwerk, Speicher und Umgebungsvariablen, sodass Sie das Verhalten des Containers Ihren Bedürfnissen anpassen können, ohne komplexe Befehlszeilenwerkzeuge zu verwenden.
- Netzwerktyp
- Lautstärkezuordnungen
- Portzuordnungen
- 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 hat eine Einschränkung, die es verhindert, dass es an zwei Netzwerken teilnehmen kann, die dasselbe Subnetz teilen. Wenn Sie zwischen einer kabelgebundenen und einer drahtlosen Verbindung wechseln, müssen Sie Docker neu starten und alle vorhandenen Container neu konfigurieren, um das neue Interface zu nutzen. Diese Netzwerkkonfiguration erfordert eine Neukonfiguration der Container.
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.
Store application data (settings, libraries, etc.) outside the container, typically in the appdata
user share. This share management approach keeps your data safe during updates or reinstalls.
- 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 Host-Portwert. Ändern Sie den Container-Port nur, wenn Sie wissen, dass die Anwendung ihn 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 das Hardcoding von sensiblen oder umgebungsspezifischen Informationen in Ihren Containerabbildern zu vermeiden. Diese Praxis erhöht die Portabilität und Sicherheit Ihrer Container.
Container erstellen und starten
Sobald Sie das Netzwerk, die Volumen-Zuordnungen, die Port-Zuordnungen und die 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 Sie die Startreihenfolge und Abhängigkeiten verwalten und gibt Tipps für die 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 von anderen abhängig, um korrekt zu funktionieren. Beispielsweise könnte eine Anwendung zuerst einen Datenbankcontainer benötigen, oder ein Dienst könnte einen VPN-Container aktiviert haben müssen, bevor er startet.
- 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 bietet Ihnen flexible Kontrolle darüber, welche Container automatisch und in welcher Reihenfolge starten. Dies ist besonders nützlich, wenn Sie Container haben, die von anderen abhängig sind (wie ein Datenbank- oder 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 Autostart-Container so schnell wie möglich in der Reihenfolge, in der sie auf der Docker-Registerkarte erscheinen. Sie können diese Reihenfolge anpassen und Wartezeiten zwischen den 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 die WebGUI einfach. Dieser Leitfaden erläutert die Verwendung des Kontextmenüs, das Verständnis von Container-Gesundheitsindikatoren und den Zugriff auf Volumen-Zuordnungen innerhalb Ihres Containers.
Um auf das Kontextmenü des Containers zuzugreifen, wechseln Sie zur Docker- oder Dashboard-Registerkarte und klicken auf das Container-Icon, das Sie verwalten möchten. Dieses Menü bietet einfachen Zugriff auf häufige Aktionen:
Option | Beschreibung |
---|---|
WebUI | Öffnet die Webschnittstelle des Containers in einem neuen Browser-Tab (falls verfügbar). |
Konsole | Öffnet eine Kommandozeilenschnittstelle, um direkt mit dem Container zu interagieren. |
Stopp | Stoppt den laufenden Container. |
Pause | Pausiert den Container und hält vorübergehend alle Prozesse an. |
Neustart | Startet den Container neu und wendet alle Konfigurationsänderungen an. |
Protokolle | Zeigt die Protokollausgabe des Containers zur Fehlerbehebung an. |
Bearbeiten | Ändern Sie die Container-Einstellungen, wie Port- oder Volumen-Zuordnungen. Änderungen werden sofort nach dem Speichern wirksam. |
Entfernen | Löscht den Container. Sie können auswählen, nur den Container zu entfernen oder auch dessen Image zu löschen. |
Projektseite | Öffnet die Projektseite des Containers für Dokumentation und Support. |
Support | Bietet Zugang zu Hilfs- und Unterstützungsressourcen für den Container. |
Weitere Infos | Zeigt zusätzliche Informationen über den Container und seine 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 seine Gesundheitsprüfung nicht bestanden. Untersuchen Sie die Protokolle oder Container-Einstellungen für weitere Informationen.
- ⚪ Keine Gesundheitsprüfung: Dies bedeutet, dass keine Gesundheitsprüfung für den Container konfiguriert ist. Das ist bei vielen Apps üblich 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
Hier sind einige Beispiele für häufige Pfadzuordnungskonfigurationen, die Benutzer häufig benötigen, wenn sie Docker-Container einrichten. Sie zeigen, wie man zwischen dem Host-Dateisystem-Pfad von Unraid und den internen Pfaden des Containers übersetzt, um Anwendungen korrekt zu konfigurieren.
-
Medienserver: Host-Pfad:
/mnt/user/media
Container-Pfad:/unraid_media
Stellen Sie in der App den Speicherort Ihrer Medienbibliothek 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. -
Multiple user shares: Host path:
/mnt/user/media
→ Container path:/media
Host path:/mnt/user/data
→ Container path:/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 nativ keine zeitgesteuerten Start- oder Stopp-Aktionen für Docker-Container, aber Sie können diesen Prozess ganz einfach mit dem User Scripts plugin automatisieren. Dieses leistungsstarke Tool ermöglicht es Ihnen, benutzerdefinierte Skripte nach einem Zeitplan auszuführen, sodass Sie Ihre Container automatisch steuern können.
Benutzerskripte-Plugin
Das User Scripts plugin ermöglicht es Ihnen, benutzerdefinierte Shell-Skripte direkt über die WebGUI zu erstellen, zu verwalten und zu planen. Sie können es für verschiedene Automatisierungsaufgaben verwenden, z. B. zum Starten oder Stoppen von Containern, zum Sichern von Daten oder zum 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 ein neues Skript für jeden einzigartigen Zeitplan. Sie können Befehle für mehrere Container in einem einzigen Skript einschließen, 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 eine flexible Planung über die integrierten Optionen hinaus. Beispielsweise führt 0 3 * * 1
Ihr Skript jeden Montag um 3:00 Uhr aus.
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.