PiHole unter Docker

Einleitung

Werbung hat mich schon immer gestört. Deshalb habe ich bereits früher mal ein PiHole auf einem Raspery Pi aufgesetzt. Damals ist mir aber Ziemlich schnell verleidet weil plötzlich viele dinge nicht mehr funktioniert haben. Zum Beispiel der Google Play Store, wahrscheinlich war damals der Fehler, dass ich eine Block Liste hinzugefügt habe, welche Einträge enthalten hat, die ich gebraucht hätte. Damals habe ich PiHole direkt auf dem Raspberry Pi. Mein Ziel ist es PiHole auf Docker zum laufen zu bringen, da ich das Thema Docker spannend gefunden haben.

Vorbereitung

Bevor ich Anfangen mit dem eigentlichen Projekt anfangen konnte musst ich noch einige Dinge vorbereiten.

Netzwerk

Änderung der IP Adresse

ifconfig ens160 172.20.0.30 netmask 255.255.255.0

Default Gateway hinterlegen

route add default gw 172.20.0.1 

DNS hinterlegen Mit diesem Befehl wird beim File /etc/resolv.conf ein neuer Eintrag erstellt. Momentan hinterlege ich noch den Google DNS Später werde ich es noch auf die IP Adresse des PiHole apassen.

echo "nameserver 8.8.8.8" >> /etc/resolv.conf

IP Adresse

Damit die Statische IP Adresse auch nach einem Restart noch definiert ist, muss man den "netplan" bearbeiten.

Zuerst muss man mit SUDO rechten beziehungsweise mit dem root Benutzer den "netplan" mit Nano oder einem anderen Editor öffnen. Diese Datei findet man unter "/etc/netplan/" in diesem Ordner ist eine .yaml Datei welche bearbeitet werden kann

Docker Speicherort ändern

Docker speichert alle seine Daten Standartmässig irgendwo unter var/docker dies ist Ständermässig auf der Partition sda1. Da ich aber nun dies gerne die Daten insbesondere die Volumens an einem anderen Ort ablegen wollte war es das einfachste die ganzen Docker Files zu verschieben.

Ich habe fĂĽr diesen Zweck eine zweite Disk verwendet

Um alle vorhanden Disk anzuzeigen gibt es verschiedene Möglichkeiten

1.Anders wie bei Windows weisst man den Laufwerken keinen Laufwerksbuchstaben zu sondern mountet sie in einen Ordner. Dafür muss man einen Ordner erstellen, ich habe meinen "data" genannt. 2.Als nächstes muss man die Disk Partitionieren mit dem Befehl fdisk. Als nächstes hat man verschiedene Möglichkeiten, da ich eine neue Partition erstellen will wähle ich die Option -n. Die weiteren Optionen habe ich alle auf Standard belassen. Was noch wichtig zu beachten sein könnte, ist die Option ob man eine Primary oder Extended Partition erstellen will, denn Primary kann man nur 4 erstellen. 3.Mit w Speichert man die Konfiguration und beendet sie.

1.Formatieren und gewĂĽnschtes Filesystem anlegen 2.Mounten an zuvor angelegten Ordner

Damit die Disk auch nach einem Restart direkt gemountet wird muss ein Eintrag im File /etc/fstab gemacht werden. Die letzten Zwei Zahlen stehen fĂĽr dump, wenn man Backups ĂĽber dump macht kann man gleich hier sagen, dass Sicherungen von dieser Partition gemacht werden. Der Standard Wert ist 0 kein Backup. Die Zweite Zahl steht fĂĽr pass, hier kann man definieren in welcher Reihenfolge die Partitionen nach dem Start ĂĽberprĂĽft werden sollen. 1 kann fĂĽr die Bootpartition verwendet werden, diese wird zuerst ĂĽberprĂĽft alle anderen kann man auf 2 fĂĽr weniger priorisiert und 0 fĂĽr gar nicht.

Verschiebung der Docker Dateien

Um die Verschiebung zu vereinfachen, löschen wir zuerst alle Container und danach alle Volumes. Wenn noch keine Container installiert wurden ist dieser Schritt nicht notwendig.

Docker dienst stoppen

Bevor ich Dateien verschoben habe, habe ich zuerst noch ein Backup mit tar gemacht.

VerknĂĽpfung erstellen

Docker Service wieder starten

Container erstellen

Docker Compose File erstellen im Docker verzeichnis

Quelle: https://burakkarakan.com/blog/pihole-on-raspberry-using-pi-docker-and-docker-compose/

Container starten

Fehler

/etc/systemd/resolved.conf

service systemd-resolved restart

Danach hat aber auf dem Host die DNS Auflösung nicht mehr funktioniert.

sudo nano /etc/resolv.conf DNS Adresse ändern

Quellen

https://docs.pi-hole.net/docker/DHCP/

Network

REverse Proxy

ne

Last updated

Was this helpful?