Dieser Nextcloud/MariaDB-Thread vom Januar 2026 ist eines der klarsten Beispiele dafür, warum die Container-Netzwerkdiagnose Schicht für Schicht erfolgen sollte. Der Benutzer installierte separate Nextcloud- und MariaDB-Apps. MariaDB erreichte den stabilen Status „bereit für Verbindungen“, aber Nextcloud schlug während der Ersteinrichtung mit getaddrinfo für mariadb fehlgeschlagenDie Neuinstallation beider Apps und das Löschen ihrer Ordner änderte nichts an dem Fehler.
Der Durchbruch kam, als die Community die tatsächliche Docker-IP-Adresse des MariaDB-Containers testete. Nextcloud begann sofort mit der Installation. Damit war bewiesen, dass der Datenbankserver, die Zugangsdaten und der TCP-Pfad grundsätzlich funktionierten, während der Hostname mariadb konnte aus dem Nextcloud-Container nicht aufgelöst werden.
Der Benutzer wollte eine separate MariaDB-Datenbank für Nextcloud
In frühen Antworten wurden Alternativen wie ein All-in-One-Nextcloud-Image mit integriertem PostgreSQL oder das manuelle Erstellen einer MariaDB-Datenbank und eines Benutzers über phpMyAdmin diskutiert. Diese Vorschläge waren nicht das endgültige Problem. Der Benutzer hatte MariaDB bereits ausgeführt und musste Nextcloud lediglich den Zugriff darauf ermöglichen.
Die MariaDB-Protokolle zeigten, dass die Datenbank fehlerfrei war
Die Community riet ausdrücklich davon ab, MariaDB-Passwörter und Umgebungsvariablen wiederholt zu ändern, nachdem die Datenbank bereits initialisiert worden war. Viele Datenbank-Images wenden Initialisierungsvariablen nur bei der ersten Erstellung des Datenverzeichnisses an.
Der Datenbank-Host muss aus Nextcloud heraus erreichbar sein
Während der Ersteinrichtung von Nextcloud kann das Datenbank-Hostfeld einen Hostnamen und Port enthalten, zum Beispiel:
mariadb:3306
Das funktioniert nur, wenn das Docker-Netzwerk eine Namensauflösung bereitstellt für mariadb aus dem Nextcloud-Container.
getaddrinfo für mariadb fehlgeschlagen – ein DNS-ähnlicher Containerfehler?
Der entscheidende Fehler war:
php_network_getaddresses: getaddrinfo für mariadb fehlgeschlagen
Dies geschieht, bevor MariaDB einen Benutzernamen und ein Passwort akzeptieren oder ablehnen kann. Wenn der Name nicht in eine IP-Adresse aufgelöst werden kann, werden die Datenbankzugangsdaten noch gar nicht geprüft.
Dass beide Apps „Bridge“ anzeigten, löste die Namensauflösung nicht
Der Benutzer bestätigte, dass beide Anwendungen in ZimaOS die Bridge-Netzwerkverbindung anzeigten, aber mariadb Das Problem war weiterhin nicht behoben. Dies ist eine wichtige Docker-Besonderheit: Container, die unabhängig voneinander mit der standardmäßigen Docker-Bridge verbunden sind, erhalten nicht automatisch dasselbe DNS-Verhalten für Dienstnamen wie Dienste, die mit einem benutzerdefinierten Bridge-Netzwerk verbunden sind.
Daher ist „beide verwenden bridge“ kein ausreichender Beleg dafür, dass ein Container den Namen des anderen Containers auflösen kann.
Eine saubere Neuinstallation behob das Netzwerkverhalten nicht
Der Nutzer deinstallierte Nextcloud und MariaDB, löschte ihre Ordner und installierte beide von Grund auf neu. Derselbe Hostname-Fehler trat erneut auf. Dieser Negativtest ist nützlich, da er zeigt, dass das Problem nicht einfach auf veraltete MariaDB-Daten oder ein einmalig falsches Passwort zurückzuführen war.
Eine Nextcloud-Warnung zum lokalen Zugriff war ein separates Problem
Der Nutzer fand online den Vorschlag, Folgendes zu aktivieren: allow_local_remote_servers. Die Aktivierung dieser Einstellung während der Ersteinrichtung führte dazu, dass Nextcloud nicht mehr ordnungsgemäß startete. Die Community erklärte, dass diese Option eine andere Nextcloud-Sicherheitsregel betraf und die Docker-Namensauflösung nicht behob.
Die Community wechselte anschließend zu direkten Docker-Netzwerktests
Der Antwortende bat um folgende Prüfungen:
- ob beide Container ausgeführt wurden;
- den von Docker gemeldeten tatsächlichen Netzwerkmodus;
- ob Nextcloud die Adresse auflösen oder anpingen konnte
mariadb; - die aktuelle Docker-IP-Adresse des MariaDB-Containers.
Dies ist die richtige Eskalationsstufe, nachdem Konfigurations-Screenshots das Verhalten nicht mehr erklären: Testen Sie die Verbindung aus demselben Netzwerk-Namespace, in dem Nextcloud ausgeführt wird.
Die MariaDB-Container-IP-Adresse ermöglichte die Installation von Nextcloud
Der entscheidende Test bestand darin, zu ersetzen: mariadb:3306 vorübergehend mit der Docker-IP-Adresse und dem Port des MariaDB-Containers. Der ursprüngliche Nutzer antwortete, dass Nextcloud anschließend installiert wurde.
Der Antwortende fasste das Ergebnis klar zusammen:
-
mariadb:3306fehlgeschlagen; - Die direkte Docker-IP-Adresse am Port 3306 funktionierte sofort.
Das ist ein starker Hinweis auf ein Problem bei der Auflösung des Containernamens.
Eine direkte Container-IP-Adresse ist ein gültiger Diagnose-Workaround
Die Verwendung der IP-Adresse beweist, dass die Datenbank erreichbar ist, und ermöglicht die Fortsetzung der Installation. Im Ausgangsfall war dies ein wirksamer Workaround.
Automatisch zugewiesene Container-IP-Adressen können sich jedoch ändern, wenn ein Container neu erstellt, entfernt oder mit einem anderen Netzwerk verbunden wird. Eine Einrichtung, die dauerhaft von 172.17.x.x kann später ohne Änderungen an der Nextcloud- oder MariaDB-Konfiguration ausfallen.
Ein benutzerdefiniertes Docker-Netzwerk ist langfristig die bessere Lösung
Die robustere Architektur besteht darin, Nextcloud und MariaDB mit demselben benutzerdefinierten Docker-Netzwerk zu verbinden und einen stabilen Dienst- oder Containernamen als Datenbankhost zu verwenden. Docker stellt in benutzerdefinierten Netzwerken speziell dafür ein integriertes DNS bereit.
Die native Bearbeitung von YAML in ZimaOS macht diese Art von Netzwerkdefinition einfacher als zu dem Zeitpunkt, als der ursprüngliche Thread erstellt wurde. Verwenden Sie das aktuelle ZimaOS-Compose-Konfigurationsmodell, wenn Sie ein gemeinsames Nextcloud- und MariaDB-Netzwerk erstellen.
MariaDB-Daten bewusst beibehalten
Wenn MariaDB bereits eine funktionierende Nextcloud-Datenbank enthält, löschen Sie nicht einfach ihr persistentes Datenverzeichnis, nur um das Docker-Netzwerk zu ändern. Die Netzwerkzugehörigkeit kann geändert werden, ohne die Datenbankinhalte neu zu erstellen.
Erstellen Sie vor jeder Migration ein Backup der Datenbank und notieren Sie den aktuellen Benutzer, den Datenbanknamen und die Zuordnung der Volumes.
Deaktivieren Sie nicht die Nextcloud-Sicherheitskontrollen, um das Docker-DNS zu reparieren.
Einstellungen wie vertrauenswürdige Domains, der Zugriff auf lokale Remote-Server und die Reverse-Proxy-Konfiguration schützen Nextcloud auf der HTTP-/Anwendungsebene. Sie sollten nur geändert werden, wenn der entsprechende Nextcloud-Fehler dies erfordert.
A getaddrinfo Der Fehler beim Datenbank-Hostnamen gehört zur Docker-Netzwerkschicht.
Ein besserer Diagnosebaum
- Bestätigen Sie, dass MariaDB ausgeführt wird und auf Port 3306 lauscht.
- Bestätigen Sie, dass die vorgesehene Datenbank vorhanden ist und die Zugangsdaten bekannt sind.
- Testen Sie, ob Nextcloud den Datenbank-Hostnamen auflösen kann.
- Wenn die Hostnamenauflösung fehlschlägt, testen Sie die IP-Adresse des Datenbankcontainers.
- Wenn die IP-Adresse funktioniert, beheben Sie das Docker-Netzwerk, statt die Datenbankpasswörter zu ändern.
- Verschieben Sie beide Container in ein stabiles, benutzerdefiniertes Netzwerk, um einen dauerhaften Hostnamen zu erhalten.
FAQ zu Nextcloud und MariaDB
War MariaDB selbst defekt?
Nein. Das Protokoll zeigte, dass der Container für Verbindungen bereit war.
Was bedeutete „getaddrinfo for mariadb failed“?
Nextcloud konnte den Datenbank-Hostnamen nicht auflösen, bevor überhaupt die Authentifizierungsphase erreicht wurde.
Was bestätigte die Diagnose?
Die Verwendung der direkten Docker-IP-Adresse des MariaDB-Containers ermöglichte es Nextcloud, mit der Installation zu beginnen.
Soll die direkte Container-IP dauerhaft als Datenbankhost verwendet werden?
Es kann funktionieren, aber ein gemeinsam genutztes, benutzerdefiniertes Docker-Netzwerk mit stabiler Namensauflösung ist robuster.
Hat die Neuinstallation beider Apps das Problem behoben?
Nein. Der Quellbenutzer hat eine saubere Neuinstallation durchgeführt, und derselbe Fehler bei der Hostnamenauflösung trat erneut auf.
