Ich zeige euch hier, wie ihr Pi hole in wenigen Minuten mit Docker realisiert. Pi hole dient als DNS Server um Werbung zu blockieren.

Update

16.05.2020 Anpassung der Anleitung.
14.05.2020 Erstellung dieser Anleitung.

Pi hole sollte NIE als offener DNS Resolver im Internet stehen. Das BSI wart offiziell davor, da diese (euer) Server dann für Angriffe genutzt werden könne.

Daher nutzt meine Anleitung bitte nur, um Pi hole auf einem Server / NAS innerhalb eures privaten Netzwerkes zu betreiben.

Als Grundlage meiner Anleitung dient die offizielle Pi hole Anleitung für Docker.

1. Ordner anlegen

Zuerst legen wir uns passende Ordner-Strukturen an.

mkdir -p /opt/containers/pi-hole/{pihole,dnsmasq}

2. Docker Compose anlegen

Nun legen wir die eigentliche Docker Datei an. Hierfür habe ich mir die offizielle Pi hole Compose genommen..

cd /opt/containers/pi-hole/
nano docker-compose.yml

Inhalt

version: "3"

# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    restart: unless-stopped
    ports:
      - "53:53/tcp"
      - "53:53/udp"

    environment:
      TZ: 'Europe/Berlin'
      WEBPASSWORD: 'sicheresPasswort'  # hier euer Passwort eingeben

    volumes:
       - '/opt/containers/pi-hole/pihole/:/etc/pihole/'
       - '/opt/containers/pi-hole/dnsmasq/:/etc/dnsmasq.d/'

    dns:
      - 127.0.0.1
      - 1.1.1.1

Notwendige Anpassungen:

  1. Passwort ändern

3. Pi hole starten

Pi hole startet ihr wie gewohnt mit folgendem Befehl:

docker-compose -f /opt/containers/pi-hole/docker-compose.yml up -d

4. Pi Hole Webinterface

Wenn ihr nun auf „<IP-eures-NAS>/admin“ geht, dann solltet ihr direkt zum Webinterface kommen. Hier könnt ihr euch nun auch mit „Login“ einloggen. Das Passwort habt ihr in euer Docker-Compose Datei festgelegt.

5. Quellen

https://hub.docker.com/r/pihole/pihole

Teile diesen Beitrag
Christian

Categories:

16 Kommentare

  1. Hallo Christian,

    Deine Kochrezepte für Docker und Traefik in allen Ehren, ich habe mir schon ein paar Dinge abgeguckt, aber welchen Sinn hat ein von außen erreichbaren AdBlocker/DNS-Server? Wäre es nicht sinnvoller das Pi-Hole mit einer festen IP-Adresse dem lokalen Netzwerk zur Verfügung zu stellen?

  2. Hallo Christian,

    ich habe deine zur Verfügung gestellten Ports mit den Ports in der Dokumentation vergleichen. Es sind nur die DNS freigegeben. Hat das einen bestimmten Grund?

    Marcel

    • Hallo Marcel,
      der Grund ist, dass PI Hole bei mir nur als DNS Server fungieren soll. Daher habe andere Funktionen wie DHCP (inkl. Ports) nicht benötigt.

      LG
      Christian

    • Durch die Default Config im Docker Compose File ?
      ports:
      – „53:53/tcp“
      – „53:53/udp“
      – „67:67/udp“
      – „80:80/tcp“
      – „443:443/tcp“

      Lg,
      Holger

    • Warum macht das keinen Sinn, wenn die FritzBox statt beim Provider erst mal beim eigenen Pihole DNS nachfragt? Dieser könnte so auch von Freunden, Familie und von unterwegs genutzt werden …

      • Hallo,
        also so lange Pi Hole nur aus dem eigenen Netzwerk erreichbar ist, ist alles gut. Problematisch wirds, wenn Pi Hole einfach per Internet erreichbar ist.

        Zu Beginn des Artikels verweise ich auf das BSI. Dort kann man alles nachlesen.

        LG
        Christian

  3. Moin,
    habs gerade spontan mit meinem OMV probiert:
    Status: Downloaded newer image for pihole/pihole:latest
    Creating pihole … error

    ERROR: for pihole Cannot start service pihole: driver failed programming external connectivity on endpoint pihole (ffc8af4870fba3b5204e1abda496cae2548254e336ec1726663b73f6d2b8ab2f): Error starting userland proxy: listen tcp 0.0.0.0:53: bind: address already in use

    Ne Idee?
    Wüsste nicht was da schon auf 53 läuft?!

    • Wenn OMV Systemd einsetzt, dann könnte das der lokale DNS Resolver sein. Einfach ein netstat absetzen.
      So schaut das z.B. auf nem aktuellen Xubuntu aus:
      sudo netstat -tulpn | grep 53
      [sudo] Passwort für …..
      tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 466/systemd-resolve
      udp 0 0 0.0.0.0:5353 0.0.0.0:* 897/avahi-daemon: r
      udp 0 0 127.0.0.53:53 0.0.0.0:* 466/systemd-resolve
      udp6 0 0 :::5353 :::* 897/avahi-daemon: r

      • Nachtrag: Eventuell ist auch einfach die Prüfung von OMV für den Boppes.
        Die Meldung schaut so für mich aus:
        proxy: listen tcp 0.0.0.0:53: bind: address already in use

        0.0.0.0 ist eigentlich ein IPv4 „Platzhalter“ für alle verfügbaren Interfaces und das schließt natürlich auch localhost (127.0.0.1) ein. An der externen IP sollte der Port 53 immer verfügbar sein und der pi hole Container stressfrei startbar sein. Ich bin nach einigen Experimenten im Docker Container mit pihole in ne VBox Debian VM abgewandert.

  4. Hallo,

    ich habe versucht anhand deiner Anleitung den Pi-Hole im Docker aufzusetzen. Dies hat mal gar nichts funktioniert. Fehlen evtl. noch Infos in den Schritten? Schritt 2 ist auch nicht ganz verständlich. Es mus doch sciherlich mehr angepasst als nur das PW oder nicht?

    Beste Grüße

Schreibe einen Kommentar zu Hein Mück Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Spenden

Persönliche Informationen

Spendensumme: 2€