Wie man Pihole in einem Docker-Container einrichtet

Vielleicht werden Sie von Pop-up-Anzeigen belästigt, wenn Sie einen Artikel auf einer Website lesen. Wie blockieren Sie all diese Anzeigen? Installieren Sie Pi-hole in Docker und verwenden Sie Pi-hole als netzwerkweiten Anzeigenblocker, um die Leistung Ihres Netzwerks zu verbessern.

In diesem Tutorial erfahren Sie, wie Sie Pi-hole in einem Docker-Container einrichten und ausführen, um Anzeigen und Websites zu blockieren. Klingt spannend? Lesen Sie weiter, um mehr zu erfahren!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie folgen möchten, stellen Sie sicher, dass Sie Folgendes haben:

  • Docker installiert auf Windows 10 (aber jedes unterstützte Betriebssystem funktioniert).
  • A Windows 10 PC – This tutorial uses Windows 10 OS Build 19042.1165.

Erstellen von zwei persistenten Docker-Volumes

Wenn Sie Pi-hole in einem Docker-Container einrichten, müssen Sie zunächst ein Docker-Volume erstellen, um die Pi-hole-Anwendung und die DNS-Konfiguration zu speichern.

Öffnen Sie PowerShell als Administrator und führen Sie dann die folgenden Befehle für Docker aus, um zwei Volumes (volume create) mit den Namen pihole_app und dns_config zu erstellen. Sie können die Namen nach Ihren Wünschen ändern.

docker volume create pihole_app
docker volume create dns_config

Überprüfen Sie anschließend, ob die Docker-Volumes erfolgreich erstellt wurden, indem Sie den folgenden Befehl ausführen, der alle verfügbaren Docker-Volumes auf Ihrem Gerät auflistet.

docker volume ls

Unten sehen Sie zwei neu erstellte Volumes mit den Namen pihole_app und dns_config.

Creating two Docker Volumes for the Pi-hole Configurations.

Führen Sie Pi-hole in einem Docker-Container mit Umgebungsvariablen aus

Jetzt, da Sie zwei persistente Volumes zur Verfügung haben, können Sie einen Docker-Container mit dem Basis-Docker-Image von Pi-hole ausführen. Aber zuerst müssen Sie Ihre lokale IP-Adresse notieren.

Führen Sie den folgenden Befehl aus, um Ihre lokale IP-Adresse zu erhalten. Ihre lokale IP-Adresse ist notwendig, um den einzelnen Docker-Befehl ordnungsgemäß auszuführen.

ipconfig /all

Führen Sie anschließend den Befehl unten aus, um das Basis-Image pihole/pihole von Docker Hub herunterzuladen. Ersetzen Sie die Werte entsprechend anhand der unten stehenden Tabelle als Referenz. Die Tabelle erklärt jeden Flag des Befehlszwecks.

docker run --name=pihole -e TZ=Asia/Manila -e WEBPASSWORD=password -e SERVERIP=YourIPAddressHere -v pihole_app:/etc/pihole -v dns_config:/etc/dnsmasq.d -p 81:80 -p 53:53/tcp -p 53:53/udp --restart=unless-stopped pihole/pihole

Pi-hole Docker-Befehlsflags

Command Flags Definition
—name=pihole Names a Docker container as pihole. There will be an error if a container with the same name already exists on your machine
-e TZ=Asia/Manila Environment variable for time zone. Asia/Manila was used for this tutorial, but you can input anything that has the same format listed in on a GitHub gist.
-e WEBPASSWORD=password Sets a password for the Pi-hole interface.
-e SERVERIP=YourIPAddressHere Set your IP address for the Docker container. You will use this again later for making Pi-hole work.
-v pihole_app:/etc/pihole Mounts the volume pihole_app and use subdirectory /etc/pihole for storing the Pi-hole files
-v dns_config:/etc/dnsmasq.d Mounts the volume dns_config and use subdirectory /etc/dnsmasq.d for storing DNS configurations as required.
p 81:80 -p 53:53/tcp -p 53:53/udp Maps the ports of host machine to the ports of the Docker container (port 81 in host machine maps to port 80 of Docker container)
—restart=unless-stopped Sets a restart policy so the Docker container always restarts unless it is manually stopped by the user.
pihole/pihole Tells the docker run command to use the official pihole/pihole base image from Docker hub.

Nachfolgend sehen Sie den Befehl, der das pihole/pihole-Basissystem von Docker Hub lädt. Sobald das pihole/pihole-Image auf Ihrem Gerät heruntergeladen ist, wird der Befehl automatisch fortgesetzt und folgt den von Ihnen festgelegten Parametern.

Downloading pihole/pihole image.

Nach dem Herunterladen des pihole/pihole-Basissystems wird eine Ausgabe wie die folgende angezeigt, die darauf hinweist, dass Sie bereits das Pi-hole-Dashboard über den Container ausführen können.

Seeing the Pi-hole Docker Container Running Properly.

Zugriff auf die Pi-hole-Dashboard-Web-Oberfläche

Sobald der von Ihnen erstellte Docker-Container läuft, können Sie auf das Pi-hole-Dashboard zugreifen. Das Pi-hole-Dashboard ist eine grafische Benutzeroberfläche, mit der Sie konfigurieren können, welche Anzeigen entweder über Ihre eigene Blacklist oder über von der Community gepflegte Blacklists blockiert werden sollen.

Gehen Sie in Ihrem Browser zu http://localhost:81, da Sie zuvor den Port 81 des Host-Geräts auf den Port 80 des Docker-Containers gemappt haben. Dadurch leitet Ihr Webbrowser die Seite zum Pi-hole-Dashboard weiter.

Wenn Sie einen anderen Port festgelegt haben, als Sie den vorherigen docker-Befehl ausgeführt haben, ändern Sie den Port, um auf das Pi-hole-Dashboard zuzugreifen. Zum Beispiel: http://localhost:n, wobei ’n‘ die Portnummer darstellt.

Melden Sie sich nun mit dem Passwort im Pi-hole-Dashboard an, das Sie durch Ausführen des docker-Befehls im Abschnitt „Ausführen des Pi-hole Docker Containers mit Umgebungsvariablen“ festgelegt haben. Für dieses Tutorial ist das Passwort „password“ (ohne Anführungszeichen).

Accessing the Pi-hole dashboard.

Wie Sie unten sehen können, blockiert der Pi-hole-Container Anzeigen nicht aktiv und befindet sich im Standby-Modus, während er auf das wartet, was er als „Abfragen“ oder Anzeigenanfragen bezeichnet, um sie zu bewerten.

Viewing Pi-hole dashboard Default Page.

Um den DNS-Server des Hosts auf die IP-Adresse von Pi-hole zu zeigen

Mit dem Pi-hole-Server in Betrieb, wie blockieren Sie Anzeigen auf Ihrem lokalen System? Sie müssen Ihrem lokalen System mitteilen, alle Anfragen an die IP-Adresse von Pi-hole zu leiten und alle übereinstimmenden Anzeigen zu blockieren. Lesen Sie weiter, um zu erfahren, wie!

1. Klicken Sie mit der rechten Maustaste auf das Symbol für Ihre Netzwerkeinstellungen im Windows-Systembereich und wählen Sie Netzwerk- & Internet-Einstellungen öffnen, um die Liste aller Netzwerkadapter in Ihrem Gerät zu sehen.

Accessing Network & Internet Settings

2. Klicken Sie anschließend mit der rechten Maustaste auf Ihren Netzwerkadapter und wählen Sie Eigenschaften. Das Fenster mit den Einstellungen Ihres Netzwerkadapters wird angezeigt.

Accessing Network Adapter Properties.

3. Wählen Sie unter dem Netzwerk-Tab Internetprotokoll Version 4 (TCP/IPv4) aus der Liste aus und klicken Sie dann auf die Schaltfläche Eigenschaften.

Accessing IPv4 Properties.

4. Konfigurieren Sie die IPv4-Eigenschaften wie folgt:

  • Wählen Sie die Option Die folgende IP-Adresse verwenden, um eine statische IP-Adresse festzulegen. Die statische IP-Zuweisung an den Host ermöglicht es anderen Geräten, sich zu verbinden und den Adblocker zu verwenden. Das Standardgateway für den Router variiert je nach den Einstellungen Ihres Internetdienstanbieters in Ihrem Land.
  • Wählen Sie die Option Verwenden Sie die folgenden DNS-Serveradressen, um Ihren DNS-Server zu konfigurieren, und fügen Sie einen DNS-Server im Feld Bevorzugter DNS-Server hinzu. Geben Sie die IP-Adresse des Docker-Servers ein, den Sie im vorherigen docker-Befehl unter dem Abschnitt „Ausführen des Pi-hole-Docker-Containers mit Umgebungsvariablen“ festgelegt haben.
  • Fügen Sie einen alternativen Server wie den Google-Server 8.8.8.8 im Feld Alternativer DNS-Server hinzu und klicken Sie auf OK. Der alternative DNS-Server dient als DNS-Server, falls der Pi-hole-Docker-Container aus irgendeinem Grund ausfällt. Sie können dem alternativen DNS-Server einen anderen Wert geben, den Sie bevorzugen.
Configuring IPv4 Properties

Konfigurieren der DNS eines einzelnen Geräts

Angenommen, Sie haben ein Smartphone oder ein anderes Gerät, das mit demselben Netzwerk verbunden ist, können Sie den DNS-Server dieses Geräts auf die IP-Adresse des Hosts einstellen. In diesem Tutorial ist ein Smartphone mit demselben Netzwerk verbunden.

1. Tippen Sie in den drahtlosen Netzwerkeinstellungen des Smartphones auf Manuell und geben Sie die IP-Adresse des Hostcomputers ein. Sie können auch alternative IP-Adressen hinzufügen, falls Pi-hole ausfällt.

Die Benutzeroberfläche der drahtlosen Netzwerkeinstellungen auf Smartphones kann variieren.

Configuring DNS server on smartphone

2. Besuchen Sie nun einige Websites, die viele Werbeanzeigen enthalten, in Ihrem Smartphone-Webbrowser.

Für dieses Beispiel wurden die Websites von Daily Mail und der New York Times wiederholt für 5-10 Minuten besucht. Das Live-Browser-Admin auf dem Pi-hole-Dashboard zeigt die Anzahl der blockierten Anzeigen vom Gerät, wie unten gezeigt.

Die Balkendiagramme sind eine kürzliche Ergänzung zur neuesten Version von Pi-hole zum Zeitpunkt dieses Schreibens. Einige ältere Versionen haben stattdessen Liniendiagramme.

Running Docker Pi-hole in Action with a Smartphone Usage for 5-10 Minutes

Aktivieren der netzwerkweiten Blockierung zu Hause über Router-Einstellungen

Statt einen DNS-Server auf einem einzelnen Gerät zu konfigurieren, versuchen Sie, DNS-Server für alle Geräte in den Router-Einstellungen zu konfigurieren. Je nach Ihrem Router gibt es möglicherweise eine Möglichkeit zur Verwendung der IP-Adresse oder auch nicht.

Für diese Demo hat der Router keinen Zugriff auf die Änderung von DNS-Servern und DHCP ermöglicht. Daher wurde das Heimnetzwerk in diesem Tutorial aufgrund von Routerbeschränkungen nicht vollständig erkundet.

In einer Beispielansicht des Admins können Sie die DNS-Server-IP möglicherweise genauso codieren, wie es bei einem einzelnen Gerät gemacht wurde. Diese Demo verwendet einen Prolink PRS1841U-v2-Router, der an den ISP gebunden ist.

Die DNS-Konfigurationsoberfläche unterscheidet sich von Router zu Router, aber die Einstellungen sehen so aus wie unten dargestellt.

Manually setting a router DNS settings.

Sie können auch den DHCP-Server im Router deaktivieren und stattdessen den DHCP-Server in Pi-hole aktivieren. Eine Beispieldiskussion in der Pi-hole-Community zeigt dies genauer.

Websites über das Pi-hole-Dashboard blockieren

Die Standardinstallation von Pi-hole blockiert standardmäßig rund 92.725 Websites, aber Sie können auch weitere Websites über Blacklists des Pi-hole-Herstellers und andere Listen, die von Pi-hole-Fans geteilt werden, hinzufügen.

1. Speichern Sie die zu blockierenden Websites in einer Textdatei mit Ihrem bevorzugten Namen. Für dieses Beispiel wird die Datei als blocklist.txt bezeichnet.

2. Führen Sie den docker-Befehl unten aus, um die Datei blocklist.txt (cp blocklist.txt) in das Docker-Container-Volume in eine Datei namens blacklist.txt zu kopieren. Behalten Sie die Datei blacklist.txt im Docker-Volume, damit Pi-hole sie automatisch erkennt.

docker cp blocklist.txt d70:/etc/pihole/blacklist.txt

3. Gehen Sie schließlich erneut zum Pi-hole-Admin-Dashboard. Klicken Sie im linken Bereich auf das Tools-Menü und dann auf den Update Gravity-Link. Klicken Sie abschließend auf Aktualisieren, um eine aktualisierte Liste von URLs zum Blockieren durch Pi-hole abzurufen.

Showing Update Gravity on Pi-hole UI after Copying Additional Website Blacklists on Text File

A successful update will look like the one below.

Showing Display of Update Gravity Success

Aktualisieren der Blockliste von Websites über die Konsole

Vielleicht ziehen Sie es vor, Konsolenbefehle auszuführen, anstatt das Pi-hole-Dashboard zu navigieren. Wenn ja, können Sie einen Docker-Befehl in PowerShell ausführen, um Websites zu blockieren. Führen Sie den untenstehenden docker exec-Befehl aus, um eine interaktive Terminalsession zum Docker-Container pihole_app zu erstellen, die das Ausführen von Befehlen ermöglicht.

docker exec -it pihole_app /bin/bash

Sobald die Terminalsession geöffnet ist, führen Sie den untenstehenden Befehl aus, um die Blacklist von URLs von Pi-hole zu aktualisieren.

pihole -g

Führen Sie von Zeit zu Zeit erneut pihole -g aus, damit Ihr Werbeblocker aktualisiert bleibt.

Blockieren von Websites über von der Community gepflegte Blacklists von URLs

Einige URLs werden regelmäßig von ihren Beitragenden aktualisiert, andere nicht, daher spiegelt das Hochladen einer Blacklist aus einer alten Liste möglicherweise nicht die neuesten Änderungen wider.

Nutzen Sie das Feature zur Gruppenverwaltung von Adlist-Blocklisten von Pi-hole. Klicken Sie im Pi-hole-Dashboard auf das GruppenverwaltungAdlists-Menü auf der linken Seite und klicken Sie dann auf Hinzufügen, um die Liste der URLs auszuwählen, die Sie in Pi-hole hinzufügen möchten.

Adding a Community-Maintained Blacklists of URLs for Pi-hole to Block

Abschluss

In diesem Tutorial haben Sie gelernt, wie Sie ein Pi-Hole Docker-Image herunterladen, eine aktive Pi-Hole-Webbenutzeroberfläche testen und ein externes Gerät testen, um sich mit Pi-Hole zu verbinden. Sie haben auch gelernt, wie Sie Anzeigen und Websites blockieren können, und haben das Pi-Hole-Dashboard in Aktion gesehen, wie es diese blockiert hat.

Mit diesem Wissen, warum nicht jede Host-Maschine verwenden, um Anzeigen für andere verbundene Geräte im selben Netzwerk zu blockieren?

Source:
https://adamtheautomator.com/pi-hole-in-docker/