Solaranzeige läuft nicht mehr nach Neustart des Host Systems

Solaranzeige und Docker
Alles was mit der Docker Version zu tun hat.

Moderatoren: Ulrich, DeBaschdi

Stoelli
Beiträge: 14
Registriert: Mo 22. Apr 2024, 18:52

Solaranzeige läuft nicht mehr nach Neustart des Host Systems

Beitrag von Stoelli »

Ich musste den Raspi an einen anderen Netzwerkanschluss bringen und habe dazu das Docker-Host-System mit shutdown runtergefahren, den Raspi vom Strom getrennt und an anderer Stelle wieder in Betrieb genommen. Danach hat die Solaranzeige nichts mehr gemacht. Der Container lief, mit der Konsole bin ich reingekommen, aber Grafana und Influx liefen nicht. Die anderen Container (Pihole und Portainer) funktionieren, allerdings hat Pihole sein Passwort nicht mehr erkannt, welches deutsche Umlaute enthielt. Das kann man ja zurücksetzen, also kein Problem, aber eine Erklärung dafür hab ich nicht.
Habe den Solaranzeige Container gelöscht und neu erstellt, keine Änderung.
docker exec -ti Solaranzeige /solaranzeige/setup
liefert den Fehler
OCI runtime exec failed: exec failed: unable to start container process: exec: "/solaranzeige/setup": stat /solaranzeige/setup: no such file or directory: unknown
Die Daten (die Bind Volumes) liegen bei mir unterhalb von /home/pi/solaranzeige. Von diesem Verzeichnis hab ich ein Backup gemacht, es anschließend komplett gelöscht, das lokale Image takealug/solaranzeige:arm64v8 gelöscht und alles nach der Beschreibung auf https://hub.docker.com/r/takealug/solaranzeige neu aufgesetzt.
Gleiches Ergebnis. Das setup file ist nicht vorhanden. Es fehlen auch alle php-Dateien in /var/www/html.

solaranzeige.log ist leer

php.log:
[19-Jan-2025 00:31:22 Europe/Berlin] PHP Warning: ssh2_connect(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /usr/local/sbin/solaranzeige.update on line 29
[19-Jan-2025 00:31:22 Europe/Berlin] PHP Warning: ssh2_connect(): Unable to connect to solaranzeige.de on port 9853 in /usr/local/sbin/solaranzeige.update on line 29
[19-Jan-2025 00:31:22 Europe/Berlin] PHP Warning: ssh2_connect(): Unable to connect to solaranzeige.de in /usr/local/sbin/solaranzeige.update on line 29
update.log:
19.01. 00:31:02 Update wird durchgeführt.
19.01. 00:31:22 Server: solaranzeige.de Port: 9853 nicht erreichbar.
Kann jemand helfen?

Stoelli
Beiträge: 14
Registriert: Mo 22. Apr 2024, 18:52

Re: Solaranzeige läuft nicht mehr nach Neustart des Host Systems

Beitrag von Stoelli »

Geht wieder, einfach so, nach Deaktivierung des Pihole, zurückspielen aller gesicherten Daten mit sftp (die Softlinks in /solaranzeige/config per shell manuell angelegt) und Neustart des Docker-Host. Hatte ich nicht erwartet, der Neustart war eher eine Verzweiflungstat. Aber leider fehlen nun 4 Tage Daten.
Es könnte ein DNS-Problem gewesen sein, ausgelöst durch den Neustart des Solaranzeige-Containers ca. 3 Tage nach Installation von Pihole. Vorher ging alles (mit Pihole). Danach hatten eventuell Host und Solaranzeige verschiedene DNS-Server eingestellt (host noch die Fritzbox, Solaranzeige das Pihole). Aber vielleicht war noch mehr, denn es liefen auch Grafana-server und influxd nicht und ließen sich auch nicht starten. Die Console in die Solaranzeige ging immer nur einige (2...20) Sekunden, dann brach sie ohne Fehlermeldung ab.
Nach dieser Erfahrung würde ich empfehlen, bei Änderungen im Netzwerk wie z.B. Router-Adresse oder DNS-Server:
- Solaranzeige runterfahren
- Docker-Host rebooten
- Solaranzeige starten

Stoelli
Beiträge: 14
Registriert: Mo 22. Apr 2024, 18:52

Re: Solaranzeige läuft nicht mehr nach Neustart des Host Systems

Beitrag von Stoelli »

Ich kann den Fehler reproduzieren und bin jetzt sicher dass es nur am DNS-Eintrag liegt.
Wenn die Solaranzeige funktioniert (Fritzbox wird per DHCP als DNS-Server bekanntgegeben), dann sieht /etc/resolv.conf im Container Solaranzeige so aus:
# Generated by Docker Engine.
# This file can be edited; Docker Engine will not make further changes once it
# has been modified.

nameserver 192.168.178.1
search fritz.box

# Based on host file: '/etc/resolv.conf' (legacy)
# Overrides: []
Wenn ich bei aktivem Pihole (Pihole wird per DHCP als DNS-Server bekanntgegeben) die Solaranzeige neu starte, funktioniert sie nicht mehr (kein Apachen kein Influx, Console nur eingeschränkt). In /etc/resolv.conf steht dann
nameserver 192.168.178.4
das ist die Adresse des Host-Systems von Pihole und Solaranzeige.

Nach meinem Verständnis sollte doch ein Docker-Container gar keinen externen DNS-Server benutzen da DNS von Docker gehandled wird? Möglicherweise sollte DeBaschdi das Image so ändern, dass darin kein DHCP Client läuft.

Paul1984
Beiträge: 46
Registriert: Mo 6. Mär 2023, 21:00
Danksagung erhalten: 2 Mal

Re: Solaranzeige läuft nicht mehr nach Neustart des Host Systems

Beitrag von Paul1984 »

also ich nutze auch Docker mit der Solaranzeige.
Lief mit normaler Einstellung der Fritzbox ohne Probleme. Danach mit Adguart über Docker ohne Probleme. Inzwischen mit Opnsense Firewall und Adguard ohne Probleme.

Ich denke also nicht dass es am Image liegt, sondern eher an deiner config...

Stoelli
Beiträge: 14
Registriert: Mo 22. Apr 2024, 18:52

Re: Solaranzeige läuft nicht mehr nach Neustart des Host Systems

Beitrag von Stoelli »

Es kommt drauf an, wie man Pihole oder Adguard verwendet. Deren IP muss bei den Geräten im Netz als DNS Server eingetragen werden. Das kann auf verschiedene Weise geschehen:
1. Bei jedem Gerät manuell eintragen. Umständlich und wenig praktikabel, würde aber funktionieren.
2. Pihole oder Adguard als einzigen DNS Server der Fritzbox verwenden. Alle Geräte im Netz fragen die Fritzbox und die fragt Pihole/Adguard. Sollte funktionieren und ist einfach umsetzbar. Nachteil: in Pihole/ Adguard kann man nicht sehen von wem die DNS Anfragen stammen, weil alle von der Fritzbox kommen.
3. Die Fritzbox sagt allen Geräten im Netz per DHCP, dass Pihole/Adguard der DNS Server ist. Das ist m.E. die beste Methode. Aber damit funktioniert die Solaranzeige (bei mir) nicht, wie oben beschrieben.
Ich bin weder Linux- noch Docker-Experte und verstehe auch nicht genau, warum alle möglichen Dienste der Solaranzeige nicht laufen. Aber in den Logs stehen DNS-Fehler und die Solaranzeige übernimmt den DNS Server aus DHCP. Dabei sollte sie eigentlich nur das bridge Netz von Docker (bei mir 172.17.0.0/16) sehen mit dem Docker Host (172.17.0.1) als Gateway und DNS Server. Damit das funktioniert, dürfte sie das DNS Advertising vom DHCP Server in der Fritzbox gar nicht empfangen...
Edit 29.1.25: Inzwischen weiß ich von docs.docker.com
By default, containers inherit the DNS settings as defined in the /etc/resolv.conf configuration file. Containers that attach to the default bridge network receive a copy of this file. Containers that attach to a custom network use Docker's embedded DNS server. The embedded DNS server forwards external DNS lookups to the DNS servers configured on the host.
Das custom network könnte die Lösung sein. Probier ich demnächst mal aus.

Stoelli
Beiträge: 14
Registriert: Mo 22. Apr 2024, 18:52

Re: Solaranzeige läuft nicht mehr nach Neustart des Host Systems

Beitrag von Stoelli »

Problem gelöst.
Mit Portainer ein Netzwerk angelegt (z.B. "myNet", bridge driver, subnet 172.22.0.0/16, gataway 172.22.0.0.1, range 172.22.0.0/25, attachable=true), Solaranzeige mit diesem Netz verbunden, anschließend vom Netz "bridge" getrennt. Solaranzeige ist weiterhin normal erreichbar.
Pihole wird (mit der IP des Hostsystems) per DHCP als DNS-Server verteilt.
Neustart des Solaranzeige Containers: Nach 10 Sekunden funktioniert alles wieder.

Ohne Portainer sollte es gehen mit

Code: Alles auswählen

docker network create --driver bridge my-network
docker run \
  ...
  --name=Solaranzeige \
  --network my-network \
  ...

Zurück zu „Docker Container“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste