Möglicherweise unterbindet eine Firewall oder Docker selbst den Zugriff auf Pi-holes IP-Adresse.
Das hätte aber bei den nslookups sofort auffallen müssen - es sei denn, Du hast die Kommandos nicht auf der Maschine ausgeführt, die Deine Zertifkate erneuert, sprich: aus dem entsprechenden Container heraus.
Hast Du die nslookups aus einer Shell im certbot-Container abgesetzt?
Von der Shell auf dem Pi.
Das Problem ist, dass der docker sofort wieder stirbt und ich keine Möglichkeit gefunden habe, ein docker exec in den Container zu machen...
Ich vermute aber inzwischen, dass das der richtige Pfad ist.
Wenn ich einen anderen Container starte, ist dort zwar weder ping noch nslookup installiert, wenn ich dort aber ein apt-get update mache, sehe ich Temporary failure resolving 'deb.debian.org.
Stellt sich also die Frage, warum das geht wenn Pi-Hole nicht da ist?
Mag es an den Ports liegen? Pi-Hole nutzt ja wohl 53, 80 und 443. Deshalb muss man z.B. einen nginx-Container nach außen z.B. auf 9080 schauen lassen und auf intern 80 mappen.
Das bash am Ende sollte Dich auf eine Terminal bringen. Falls das nicht funktioniert, vielleicht mit sh probieren. In diesem Container solltest Du den Prozess dann mit dem restlichen Befehl jederzeit starten können:
Theoretisch müsstest Du eine Shell für ein Image <image-name> über folgendes Kommando erreichen können:
docker run -it --rm <image-name> bash
Ob das funktioniert, hängt aber auch davon ab, wie das Image gebaut wurde und auf welche Parameter es angewiesen ist.
Das lässt sich nur vorab nur über die Dokumenation für das certbot-Image herausfinden, oder einfach durch Ausprobieren.
$ nslookup acme-staging-v02.api.letsencrypt.org
;; connection timed out; no servers could be reached
$ nslookup acme-staging-v02.api.letsencrypt.org 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8:53
Non-authoritative answer:
acme-staging-v02.api.letsencrypt.org canonical name = staging.api.letsencrypt.org
staging.api.letsencrypt.org canonical name = 56a5f4b0bc8146689ec3e272c43525f9.pacloudflare.com
Name: 56a5f4b0bc8146689ec3e272c43525f9.pacloudflare.com
Address: 172.65.46.172
Non-authoritative answer:
acme-staging-v02.api.letsencrypt.org canonical name = staging.api.letsencrypt.org
staging.api.letsencrypt.org canonical name = 56a5f4b0bc8146689ec3e272c43525f9.pacloudflare.com
Name: 56a5f4b0bc8146689ec3e272c43525f9.pacloudflare.com
Address: 2606:4700:60:0:f41b:d4fe:4325:6026
Wenn ich statt 8.8.8.8 meine FB (192.168.178.1) angebe, geht's auch.
Und nun die Frage, warum der Pi-hole verhindert, dass der Container den nslookup hinbekommt; ohne scheint er das ja zu schaffen, da der certbot erfolgreich raus kommt.
Evtl. wg. Port 80 für das Web-Interface?
Denke eher an der docker-Konfiguration oder dem verwendeten Netzwerkmodus. Wenn Firewall, würde ich erwarten, dass die immer blockt, egal ob Pihole da ist, oder nicht.
Ja. Aber...
Die Gründe verstehe ich auch eher in dem Bereich der automatischen Webserver-Konfiguration.
Ich würde es halt lieber gekapselt betreiben und hoffe trotz der gegenteiligen Empfehlung auf weitere gute Ideen!
Nochmal Dank Euch beiden für Geduld und das gute Eingrenzen der Ursache.
Also die IP meines PI (mit Pi-Hole).
Entspricht dem auf dem PI selbst, so dass ich davon ausgehe, dass es bei Umkonfiguration auf FB in beiden Fällen mit 192.168.178.1 antworten würde.
Du könntest versuchen, in Deinem Certbot-Container mit der IP-Adresse der FB als DNS zu arbeiten, indem Du --dns=192.168.178.1 zu Deinem docker run hinzufügst.
Wenn das funktioniert, könnte man sich die Suche nach der korrekten Ubuntu/Docker-Netzwerkintegration mit Pi-hole sparen.
Auf diese Weise nutzt der certbot-Container nicht den Pi-hole, sondern die Fritzbox als DNS-Server (oder eben einen anderen gewählten Server) und kann dann auch die Namen auflösen. Warum die Namensauflösung mit Pi-Hole als DNS-Server nicht geht, ist noch nicht verstanden!
Wenn es für Dich/Euch okay ist, würde ich diesen Post - auch wenn es von Euch beiden erarbeitet wurde - als Lösung markieren, falls nochmal jemand Certbot und Pi-Hole in docker laufen lassen möchte.
Können sie gerne tun, aber bitte noch eine Kurzzusammenfassung zum Befehl als Lösung dazuschreiben. Damit sich User mit die gleiche Probleme nicht durch 35 Posts arbeiten müssen.