Werbung
Hinweis: Diese Seite enthält Werbelinks

Pi-Hole Docker Installation mit Portainer

Im heutigen Beitrag geht es um die Pi-Hole Docker Installation. Wir werden Pi-Hole mit Portainer installieren.

Doch was Pi-Hole eigentlich?

Pi-Hole ist ein Werbeblocker und Trackingblocker, der zentral und somit für alle Geräte in eurem Heimnetzwerk die Werbung blockiert. Pi-Hole wird hierbei als DNS Server genutzt und der gesamte Netzwerkverkehr geht ab dann über Pi-Hole. PiHole filtert die Domains, über welche Anzeigen ausgendet werden. Damit ihr einen Eindruck bekommt wie das ganze aussieht.

Hier eine Seite vor der Nutzung von Pi-Hole.

Die gleiche Seite mit Nutzung von Pi-Hole.

Pi-Hole Docker Installation – Hardware

Da ich bereits ettliche Applikationen auf diversen Raspberry Pi laufen hatte, verwende ich inzwischen einen Dell Optiplex. Dieser bietet genug Leistung um Anwendungen wie den Unifi Controller, Node- RED und vieles mehr auf einem Rechner laufen zu lassen. Falls ihr euch wie ich für einen Dell Optiplex mit Windows entscheidet, seid ihr gut vorbereitet für weitere Anwendungen.

Pi-Hole Docker Installation – Software

Software – Docker und Portainer

Ihr benötigt als Voraussetzung Docker und Portainer.

Ich nutze aufgrund meiner KI Videoüberachung Windows. Ihr könnt den Beitrag Docker unter Windows durcharbeiten, falls ihr auch unter Windows arbeiten wollt.

Ansonsten tut es auch jede andere Installation mit Portainer z.B. auf einem Raspberry Pi.

Software – Pi-Hole

Als erstes ruft Portainer auf.

Damit unsere Konfiguration gesichert wird, erstellen wir als erstes ein Volume für den Pi-Hole Container.

Pi-Hole – Volume erstellen

Klickt auf Volumes (1) und +Add Volume (2)

Anschließend vergebt einen Namen für das Volume (1) und klickt Create the Volume (2).

Pi-Hole – Container erstellen

Nun wählt container (1) und klickt +Add container (2).

  1. Vergebt einen Namen für den Container
  2. pihole/pihole:latest
  3. drückt 4. mal auf publish a new network port
  4. gebt die ports wie dargestellt ein.
    1. 53 -> 53 TCP
    2. 80 -> 80 TCP
    3. 443 -> 443 TCP
    4. 53 -> 53 UDP

Scrollt nach unten und klickt auf Volumes. Im Anschluss gebt die folgenden Daten ein. Falls ihr einen anderen Namen für das Volume gewählt habt, ändert den fett dargestellten Namen.

  1. /dnsmasq.d
  2. drückt Bind
  3. /var/lib/docker/volumes/pihole/_data
  4. /pihole
  5. drückt Bind
  6. /var/lib/docker/volumes/pihole/_data

Klickt nun auf Netowork (1) und vergebt einen Hostnamen (2).

Zum Schluss werden nun noch ein paar Umgebungsvariablen gesetzt.

  1. Klickt auf Env (1) und im Anschluss klickt vier mal auf add environment variable.
  2. TZ
  3. Europe/Berlin
  4. DNS1
  5. <IPEuresRouters> (z.B. 192.168.0.1)
  6. DNS2
  7. leer lassen
  8. WEBPASSWORD
  9. <EuerSuperGeheimesPasswort>

Das war es auch schon. Drück nun auf Deploy the container und der Container sollte starten. Im Anschluss gelangt ihr in <eureIP>/admin/ auf die Admin Oberfläche.

Software – Pi-Hole FritzBox Einstellungen

Was nun noch fehlt ist die Einstellungen im Router damit der Internetverkehr auch über Pi-Hole geht. Ich nutze eine FritzBox. Falls ihr andere Router verwendet, solltet ihr nach einen vergleichbaren Einstellung suchen.

Meldet euch an der FritzBox an und geht auf Netzwerk (1), Netzwerkeinstellungen (2) und klickt auf IPv4-Adressen.

In den Einstellungen erstzt nun die IP des lokalen DNS-Server (1) durch die von Pi-Hole. Zum Anschluss klickt OK (2).

Es dauert ggf. bis das Routing funktioniert. Testet einfach mal eure gängigen Webseiten wo ihr viel Werbung hattet.

8 Comments
  1. Hi Thomas,

    generell wäre in diesem Zusammenhang auch ein Update-Prozess interessant 🙂

  2. Hallo Thomas,

    ich habe gelesen, dass man bei der Installation von pihole als Docker via Portainer einen Value für die Variable WEBPASSWORD eingeben soll. Dazu habe ich eine Frage: „Meinst du WEBPASSWORD das Passwort für das Internet bzw. für das Webinterface des Routers oder ein x-beliebiges Passwort?“
    Ich würde mich auf deine Antwort freuen.

    MfG

    Martin

    • Hallo Martin,

      zum WebPassword ist gemeint, das du dir ein eigenes Passwort über ENV vergibst. Damit du dich auf der Pihole Webseite lokal einloggen kannst.
      Mehr ist es nicht.

      mfg

      Rene

  3. Hallo Thomas,

    vielen Dank für die ausführliche Anleitung. Wirklich perfekt umgesetzt. Ich habe meinen pi-hole aktuell auf einem eigenen RasPi laufen, würde es aber gerne auf meine Docker-Pi umziehen. Leider werden ein Teil der Ports, die du in dem Tutorial benutzt und die Pi-Hole ja auch filtern soll, schon von der Traefik-Instanz belegt. Kann ich das irgendwie ändern bzw gibts da ein Workaround oder geht das dann simpel und einfach nicht beides zeitgleich in einem Docker?

    HG
    Sebastian

  4. Hallo Thomas,

    ich kann mich hier Sebastian nur anschliessen, danke. Mein Problem ist das Gleiche wie bei Sebastian,die Traefik-Instanz und Bitwarden im Docker belegen Port 80 und 443. Kann man da etwas anpassen?

    MfG
    Frank

  5. Erstmal danke für die Anleitung.
    Was ich aber nicht so ganz verstehe ist, wie ich das Webinterface jetzt erreichen soll?
    Wenn ich den Container erstelle, bekommt dieser doch immer eine „Docker-IP“ zugewiesen. Die kann ich aber doch aus meinem „normalen“ Netz gar nicht erreichen?

    Sebastian

    • Man erreicht die Dienste des Containers ganz einfach mit der IP-Adresse des Host, gefolgt von einem „:“ und dann der Port-Nummer.
      Für http:// ist es im Regelfall
      http://:80
      Wenn der Host selbst bereits Port 80 (also http://) verwendet/benötigt (zum Beispiel für sein eigenes Web-Interface) muss man einfach nur die Host:Client-Zuordnung beim bereitstellen des Containers in den Network-Settings anders belegen – zum Beispiel so:
      80:3637
      Somit kann man über die IP des Host und des Aufrufens von Port 3637 den Port 80 des Containers erreichen. (Entspricht damit „ungefähr“ einer automatischen Port-Weiterleitung/Firewall-Konfiguration.)

    Hinterlasse einen Kommentar

    Smarthome Training and Tutorials
    Logo