Anzeige
Anzeige
Für Links auf dieser Seite erhält GIGA ggf. eine Provision vom Händler, z.B. für mit oder blauer Unterstreichung gekennzeichnete. Mehr Infos.
  1. GIGA
  2. Tech
  3. Apps & Downloads
  4. Hardware-News, Deals, Tests & Tipps auf GIGA
  5. Pi-hole in Docker-Container installieren – in 10 Minuten

Pi-hole in Docker-Container installieren – in 10 Minuten

© Pi-hole/Docker
Anzeige

Hier zeigen wir, wie ihr den Werbeblocker Pi-hole in einem Docker-Container installiert. In unserem Beispiel läuft Docker auf einem Raspberry Pi.

 
Raspberry Pi
Facts 
Anzeige

Vorbereitungen

Wir gehen davon aus, dass ihr bereits Docker auf dem Raspberry Pi installiert und die grafische Benutzeroberfläche Portainer eingerichtet habt. Wie das in wenigen Schritten geht, haben wir in dieser Anleitung gezeigt:

Pi-hole in Docker-Container installieren (auf Raspberry Pi)

Wir installieren Pi-hole über eine Docker-Compose-Datei. Das ist im Grunde eine Vorlage, in der genau drin steht, was Portainer machen soll. Dadurch spart man ordentlich Zeit und Mühe.

Anzeige

Compose-Datei als Stack hinzufügen

  1. Loggt euch über euren Browser in der Weboberfläche von Portainer ein.
  2. Klickt links auf den Menüpunkt „Stacks“ und dann rechts oben auf den Button „+ Add stack“.
  3. Gebt oben als Namen beispielsweise „pihole“ ein. Das ist die Bezeichnung, wie die Vorlage später bei euch in Portainer unter „Stacks“ angezeigt wird.
  4. Klickt darunter auf „Web editor“.
Anzeige
Erstellt einen neuen Stack, indem ihr den Code einfügt. (Bildquelle: GIGA)
Erstellt einen neuen Stack, indem ihr den Code einfügt. (Bildquelle: GIGA)

Darunter fügt ihr dann den folgenden Docker-Compose-Code ein:

version: "3"

# Mehr Infos auf https://github.com/pi-hole/docker-pi-hole/ und https://docs.pi-hole.net/
services:
  pihole:
   container_name: pihole # Der Name des Containers wie er in Portainer unter "Containers" angezeigt wird
   image: pihole/pihole:latest # Download des offiziellen Pihole-Images
   hostname: Pihole # Diese Bezeichnung steht später oben rechts in der Weboberfläche von Pihole als Hostname
   # Für DHCP wird empfohlen, die folgenden Ports zu entfernen und stattdessen hinzuzufügen: network_mode: "host"
   ports:
    - "53:53/tcp"
    - "53:53/udp"
    # - "67:67/udp" # Wird nur benötigt, wenn ihr Pi-hole als DHCP-Server nutzen wollt
    - "80:80/tcp"
   environment:
    TZ: 'Europe/Berlin' # Die Zeitzone wird auf Deutschland gestellt
    WEBPASSWORD: 'pihole' # Das Passwort, mit dem ihr euch an der Pihole-Weboberfläche anmeldet
    PIHOLE_DNS_: '9.9.9.9;149.112.112.112' # Stellt in Pihole "Quad9 (filtered, DNSSEC)" als Upstream-DNS-Server ein statt Google
   # "Volumes" speichert Daten zwischen Container-Upgrades
   volumes:
    - './etc-pihole:/etc/pihole'
    - './etc-dnsmasq.d:/etc/dnsmasq.d'
   #cap_add: # Wird nur benötigt, wenn ihr Pi-hole als DHCP-Server nutzen wollt
    # - NET_ADMIN # Wird nur benötigt, wenn ihr Pi-hole als DHCP-Server nutzen wollt
   restart: unless-stopped # Wenn ihr den Container stoppt, startet er nicht automatisch neu
Anzeige

Vorlage übernommen und von uns angepasst von: Pihole-Github

Docker-Compose-Datei ändern und Container erstellen

Wenn ihr den obigen Code in Portainer unter „Stacks“ im Web-Editor eingefügt habt, wird er farblich markiert. Orange sind Kommentare, welche die vorherigen Befehle erklären. Kommentare werden mit dem Rauten-Symbol (#) eingeleitet und von Portainer bei der Erstellung des Stacks/Containers ignoriert.

Das Skript ist in der obigen Form für die DNS-Funktionalität von Pi-hole konfiguriert. Falls ihr Pi-hole auch als DHCP-Server nutzen wollt, entfernt das erste Raute-Symbol (#) am Anfang der folgenden drei Zeilen:

  • # - "67:67/udp" # Wird nur benötigt, wenn ihr Pi-hole als DHCP-Server nutzen wollt
  • # cap_add: # Wird nur benötigt, wenn ihr Pi-hole als DHCP-Server nutzen wollt
  • # - NET_ADMIN # Wird nur benötigt, wenn ihr Pi-hole als DHCP-Server nutzen wollt
Anzeige

Gemäß des Skripts ist als Passwort für die Pi-hole-Weboberfläche „pihole“ eingestellt. Ihr könnt das ändern, indem ihr euer Wunschpasswort statt „pihole“ in dieser Zeile eintragt:

  • WEBPASSWORD: 'pihole' # Das Passwort, mit dem ihr euch an der Pihole-Weboberfläche anmeldet

Achtet dabei darauf, dass die Formatierungen inklusive Absätze erhalten bleiben. Wenn ihr fertig seid, scrollt nach unten und klickt auf den Button „Deploy the stack“. Portainer startet nun den zugehörigen Container namens „pihole“.

Pi-hole im Browser nutzen

  1. Gebt im Browser http://IP-eures-Raspberry-Pi/admin ein und drückt Enter, um die Weboberfläche von Pi-hole zu öffnen.
  2. Gebt euer Passwort ein. Falls ihr es im Code nicht abgeändert habt, lautet es „pihole“.
  3. Klickt links auf „Settings“ > „DNS“, um die DNS-Einstellungen zur prüfen. Laut Skript wurde standardmäßig der DNS-Server „Quad9 (filtered, DNSSEC)“ eingestellt.
Pi-hole läuft als Docker-Container und ist über die Weboberfläche im Browser erreichbar. (Bild: GUGA)
Pi-hole läuft als Docker-Container und ist über die Weboberfläche im Browser erreichbar. (Bildquelle: GUGA)

Pi-hole als DNS-Server einstellen

Stellt sicher, dass das Gerät, auf dem Pi-hole läuft, eine feste IP-Adresse zugewiesen bekommt. Damit Pi-hole nun als DNS-Server Daten empfängt, müsst ihr die IP-Adresse des Raspberry Pi als DNS-IP-Adresse auf euren Geräten eintragen. Entweder ihr macht das für jedes Gerät einzeln in den zugehörigen Netzwerkeinstellungen oder ihr macht das nur einmal im Router. Auf der Fritzbox funktioniert es beispielsweise so:

  1. Tippt in der Browser-Zeile http://fritz.box/ ein und drückt Enter, um die Benutzeroberfläche der Fritzbox zu öffnen.
  2. Gebt euer Gerätekennwort ein und drückt Enter.
  3. Klickt links auf den Menüpunkt „Heimnetz“ > „Netzwerk“ und wählt oben den Reiter „Netzwerkeinstellungen“ aus.
  4. Scrollt herunter zum Abschnitt „IP-Adressen“ und klickt auf den Button „IPv4-Einstellungen“.
  5. Neben „Lokaler DNS-Server“ tragt ihr die IP-Adresse des Geräts ein, auf dem Pi-hole läuft. Bei uns ist das ein Raspberry Pi mit der IP 192.168.178.41.
  6. Bestätigt mit dem Button „Übernehmen“.
Im Router wird Pi-hole nun als DNS-Server eingetragen. (Bildquelle: GIGA)
Im Router wird Pi-hole nun als DNS-Server eingetragen. (Bildquelle: GIGA)

Danach sollte Pi-hole im Dashboard bereits die ersten Statistiken anzeigen. Wie ihr Pi-hole weiter konfigurieren könnt, haben wir hier erklärt:

Pi-hole: Stack & Container beenden

Wenn ihr den Container von Pi-hole stoppen möchtet, geht das auf zwei Wegen:

  • Klickt in Portainer links auf „Stacks“, klickt rechts auf den Pihole-Stack und dann auf „Stop this stack“. Der Stack wird angehalten und der zugehörige Container aus dem Menüpunkt „Containers“ entfernt. Wenn ihr den Stack wieder aktiviert, wird auch der Container wieder eingeblendet.
  • Klickt in Portainer links auf „Containers“. Wählt den Pihole-Container aus und klickt oben auf „Stop“. Der Container wird dann mit dem Status „exited“ angezeigt.

Hat dir der Beitrag gefallen? Folge uns auf WhatsApp und Google News und verpasse keine Neuigkeit rund um Technik, Games und Entertainment.

Anzeige