Ich habe einen Raspberry Pi 5 mit Docker, Portainer und Pi-hole eingerichtet. Pi-hole verwendet ein macvlan-Netzwerk, während Portainer im Standard-Bridge-Modus läuft. Danach habe ich den DNS-Server in meinem Internet-Router auf die IP-Adresse von Pi-hole geändert. Soweit funktioniert alles wie erwartet.
Seitdem kann ich jedoch keine Docker-Images mehr herunterladen oder eine Internetadresse über Docker (SSH-Verbindung zu Docker) anpingen. Ein Ping zu 8.8.8.8 funktioniert, aber die Namensauflösung nicht.
Kann mir jemand helfen? Alle Geräte in meinem Netzwerk funktionieren einwandfrei, aber Docker/Portainer haben keinen DNS-Zugriff mehr.
Dockers macvlan-Isolation verhindert die direkte Kommunikation zwischen Container und Docker-Host, d. h. andere Container auf demselben Rechner können den Pi-hole-macvlan-Container nicht für DNS verwenden.
Wenn Du möchtest, dass andere Container ebenfalls durch Pi-hole gefiltert werden, solltest Du eher bridge oder host verwenden.
Wenn es unbedingt macvlan sein muss, könntest Du versuchen, ein Shim-Netzwerk zu erstellen, über das dann der Datenverkehr zwischen Container und Host geroutet wird. Das wird allerdings nicht funktionieren, wenn der Host selbst lediglich über eine WLAN-Schnittstelle ins Netz eingebunden ist und/oder der Netzwerkadapter den promiskuitiven Modus nicht unterstützt.
Falls die Filterung nicht erforderlich sein sollte, könntest Du auch einfach den Docker-Host oder die einzelnen Container auf einen anderen DNS-Server umstellen.