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.0Default 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.confIP 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


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?