X

Pi-hole als Docker Container unter OpenMediaVault

Geschrieben amgeschrieben von Stefan, zuletzt aktualisiert am RSS Feed
Nachdem wir euch in der Vergangenheit ja bereits den netzwerkweiten Werbeblocker Pi-hole auf einem Raspberry Pi vorgestellt hatten, folgt nun eine Anleitung um Pi-hole als Docker Container laufen zu lassen. Die Anleitung kann aber auch auf andere Container leicht angepasst angewendet werden. Insofern ist diese Anleitung auch als ein kleines Docker Tutorial zu sehen.

Pi-hole als Docker Container unter OpenMediaVault
Wir nutzen dafür das NAS Betriebssystem OpenMediaVault und die Container-Webverwaltung Portainer. Ihr könnt den Docker-Container aber natürlich auch aus z.B. Unraid oder einem nativen Linux/Windows System heraus nutzen. Da Pi-hole allerdings 24/7 laufen muss (er ersetzt ja euren DNS-Server im Netzwerk), halte ich es für sinnvoller diesen auf einem kleinen Server wie einem NAS zu installieren und nicht auf eurem privaten Computer.


Docker und Portainer unter OpenMediaVault


Zunächst einmal benötigt ihr ein NAS mit einem aktuellen OpenMediaVault. Aktuell ist momentan OpenMediaVault in Version 6, welches auf Debian 11 basiert. Dieses hatte ich in meinem Artikel OpenMediaVault 6 - Das freie NAS Betriebssystem in der letzten Woche vorgestellt.

Wer sich noch gar nicht mit OpenMediaVault auseinander gesetzt hat, dem empfehle ich zudem unsere Komplettanleitung für OpenMediaVault, welche ich kürzlich auf die aktuellste Version aktualisiert habe.

Da weder Docker noch Portainer (Webverwaltung für Container) in OpenMediaVault enthalten sind, benötigen wir zunächst die OMV-Extras, die eine Plugin-Sammlung sind und OpenMediaVault um viele Möglichkeiten erweitern. Die OMV-Extras können mit dem folgenden Befehl installiert werden:

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash


Nach der Installation der OMV-Extras könnt ihr über den neuen Menüpunkt nun zunächst die Containerverwaltung Docker und anschließend die Weboberfläche Portainer installieren. Ihr könnt statt Portainer auch Yacht nutzen, welches ebenfalls eine Weboberfläche zur Containerverwaltung ist, allerdings etwas simpler daherkommt als Portainer.

Pi-hole als Docker Container unter OpenMediaVault
Da sich Portainer und Yacht nicht in der Quere kommen, könnt ihr natürlich auch einfach beide installieren und dann ausprobieren welche Weboberfläche für euch am Besten geeignet ist. Auch die Templates in Yacht sind kompatibel zu Portainer.

Pi-hole als Docker Container unter OpenMediaVault


Portainer


In dieser Anleitung verwenden wir aber Portainer, da es die am häufigsten genutzte Containerverwaltung ist. Anfänger sollten sich hier nicht von den unzähligen Einstellmöglichkeiten verwirren lassen sondern Schritt-für-Schritt vorgehen. Da wir Docker bereits über OpenMediaVault installiert haben, ist diese Umgebung schon in Portainer angelegt.

Pi-hole als Docker Container unter OpenMediaVault
Die meisten Container benötigen neben dem Image in dem alle benötigten Daten enthalten sind, noch eine Konfiguration. Diese kann später über ein Template erfolgen oder die Variablen können auch direkt im Container gesetzt werden.


DNS-Einstellungen von OpenMediaVault


Ab OpenMediaVault 5 (Debian 10) müsst ihr zuvor den systemd-resolved Dienst umkonfigurieren, da dieser im Standard den DNS-Port 53 nutzt und ihr diesen aber für den pi-hole Container benötigt.

nano /etc/systemd/resolved.conf


Hier müssen die beiden Zeilen DNS-Cache und DNS-StubListener auf no gesetzt und aktiviert werden indem ihr das führende # löscht.

Pi-hole als Docker Container unter OpenMediaVault
Die Datei anschließend mit Strg+O speichern. Mit Strg+X schließt ihr die Datei. Anschließend muss noch der systemd-resolved Dienst neu gestartet werden:

systemctl restart systemd-resolved



In Docker einen neuen Container anlegen


Es gibt mehrere Wege um in Docker einen neuen Container anzulegen. Der erste Weg wäre über das DockerHub, welches bereits eingerichtet ist. Docker verwendet hier standardmäßig einen anonymen Docker-Account, der zwar limitiert ist, für die meisten Anwender aber ausreicht. Ansonsten könnt ihr euch jederzeit einen kostenlosen DockerHub Account einrichten.

Im DockerHub findet ihr viele bereits konfigurierte Container, die ihr nur noch geringfügig an eure Bedürfnisse anpassen müsst. Hier findet ihr auch den offiziellen Pi-hole Docker Container.

Um einen neuen Container hinzuzufügen, navigiert ihr über den Menüpunkt Containers in die Containerübersicht. Hier könnt ihr über den Button Add container einen neuen Docker Container erzeugen. Diesen Weg gehen wir in dieser Anleitung aber nicht.

Pi-hole als Docker Container unter OpenMediaVault
Achtung: solltet ihr den Container über das DockerHub erzeugen, müsst ihr unbedingt noch alle benötigten Ports, Netzwerkeinstellungen, Dateifreigaben und Variablen festlegen. Das geht problemlos, ist aber recht mühselig. Einfacher geht die Erstellung eines Containers meiner Meinung nach über die Erstellung eines Templates, das eine Docker Compose Datei enthält. Diesen Weg zeige ich euch in dieser Anleitung.


Template (Vorlage) erstellen


Unter dem Menüpunkt App Templates und dann Custom Templates lassen sich eigene Templates konfigurieren. Hier werden die kompletten Einstellungen für den Container in einer so genannten Docker Compose Datei gespeichert. In dieser Datei werden Funktionen, Variablen und Netzwerk- und Dateieinstellungen vorgenommen die dann auf den Container angewendet werden.

Ich habe hier einfach ein Template mit dem Namen pi-hole und der folgenden Konfiguration erstellt. Der Zugriff auf die Weboberfläche von Pi-hole erfolgt bei mir über den Port 1080, da der Port 80 ja bereits von OpenMediaVault belegt ist. Ihr greift später auf den Container über die IP-Adresse eures NAS zu, daher dürfen die NAS-Ports hier nicht doppelt vergeben werden. Der Port 67 wird im Pi-hole Container nur benötigt, wenn Pi-hole später als DHCP-Server für euer Netzwerk dienen soll.

Alternativ zu dem Standard Docker Netzwerk, welches immer als Netzwerkbrücke (bridge) läuft, könnt ihr auch dedizierte IP-Adressen vergeben. Dann verhält sich der pihole Container so wie ein normaler Computer im Netzwerk. Da dies aber nicht die einfachste Möglichkeit ist, verwenden wir hier das Brückennetzwerk, der Pi-hole Container ist dann unter der IP-Adresse eures NAS erreichbar.

Die Variablen WEBPASSWORD sowie DNS1 müsst ihr an eure Bedürfnisse anpassen.

version: "3.9"

services:
    pihole:
        container_name: pihole
        image: pihole/pihole:latest
        hostname: pihole
    ports:
    - "53:53/tcp" #DNS
    - "53:53/udp" #DNS
    - "67:67/udp" #DHCP/Bootstrap
    - "1080:80/tcp" #Pi-hole Weboberfläche
    - "10443:443/tcp" #Pi-hole Weboberfläche (SSL)
    environment:
        TZ: 'Europe/Berlin'
        WEBPASSWORD: 'DEINPASSWORT' #Dein Passwort für die Pi-hole Webverwaltung (frei wählbar)
        DNS1: '192.168.1.2' #Deine Router IP-Adresse
        DNS2: ''
    volumes:
        - './etc-dnsmasq.d/:/etc/dnsmasq.d/'
        - './etc-pihole/:/etc/pihole/'
    dns:  
    -'127.0.0.1' #Der Pi-hole nutzt sich selbst als DNS-Server
    cap_add:
        - NET_ADMIN #Erlaubt das Bearbeiten von Netzwerkeinstellungen im Container
    restart: unless-stopped


Habt ihr das Template erstellt, könnt ihr dies nun öffnen und über Deploy the stack den Container installieren.

Pi-hole als Docker Container unter OpenMediaVault


Docker Containerverwaltung


Unter dem Menüpunkt Containers findet ihr im Anschluss an die Installation euren neuen pihole Container.

Pi-hole als Docker Container unter OpenMediaVault
Die Weboberfläche von Pi-hole erreicht ihr in eurem Browser über die IP-Adresse eures NAS gefolgt von einem :1080. Um Einstellungen in Pi-hole vorzunehmen, müsst ihr euch zunächst mit eurem Passwort (welches ihr über die WEBPASWORD Variable in der Docker Compose Datei festgelegt habt) anmelden.

Pi-hole als Docker Container unter OpenMediaVault
Nachdem Pi-hole nun via Docker auf eurem NAS läuft, müsst ihr eure Clients so konfigurieren, dass diese den Pi-hole zur DNS-Auflösung nutzen. Das könnt ihr entweder in den DNS-Einstellungen jedes Clients manuell machen oder noch besser direkt in eurem Router (z.B. eurer Fritzbox) den Pi-hole als DNS-Server einstellen.

Wie dies im Detail funktioniert, haben wir bereits in unserer Pi-hole Anleitung auf einem Raspberry Pi 4 beschrieben. Da sich die Konfiguration identisch zu unserem Pi-hole Container verhält, könnt ihr diesen Teil der Anleitung nutzen.


Ad-Block Filterlisten in Pi-hole erweitern


Im Standard kommt Pi-hole mit einfachen Blocklisten, die ca. 130.000 Domains blockieren. Ihr könnt die Filterung durch den Pi-hole noch deutlich erweitern, indem ihr neue Blocklisten einbindet. Wie dies geht, haben wir in unserer Anleitung Neue Ad-Block Filterlisten in Pi-hole einbinden beschrieben.

Bei Links, die mit einem * gekennzeichnet sind, handelt es sich um Affiliate-Links, bei denen wir bei einem Kauf eine Vergütung durch den Anbieter erhalten.
VG-Wort

Kommentare (27)

Kommentar
Stefan (Team)
Geschrieben am05.02.2024
@IchDuErSieEs: Danke für die Info, ich werde das im Artikel ändern. Das ist bei Linux leider immer so eine Sache, kaum kommt eine neue Version kann ein Code nicht mehr korrekt funktionieren.
Kommentar
IchDuErSieEs
Geschrieben am04.02.2024
so, nach einigem Herumprobieren läuft das Ding.

Zuerst hatte ich mit dem aktuellen OMV-Docker-Compose PiHole Example File auch keinen Erfolg, Ergebnis war ähnlich.

Schlussendlich habe ich das File aber hergenommen und die unten stehenden Informationen ergänzt
Ob es an den Formatierungen lag hab ich nachträglich nicht ausprobiert, das so eigentlich gleich aus-

Die wesentliche Änderung war aber statt

dns:
- 127.0.0.1

dns: '127.0.0.1'

einzutragen
Kommentar
IchDuErSieEs
Geschrieben am02.02.2024
Auch bei mir kommt der Fehler:
failed to deploy a stack: services.capadd must be a mapping

installiert ist das aktuelle OMV6 nach Deiner Anleitung.
Hat soweit geklappt, auch wenn inzwischen schon einiges anders ist.
Hier komm ich aber nicht weiter?!?
Kommentar
Cihan
Geschrieben am02.12.2023
Ich erhalte ebenfalls die Fehlermeldung
failed to deploy a stack: services.capadd must be a mapping

und schließe mich somit der Frage von Andre an.

An der Stelle auch ein Dank von mir für das Tutorial :)
Kommentar
handmade
Geschrieben am10.11.2023
Hallo,

vorab auch von mir ein Lob für die tolle Anleitung.
Ich habe leider folgende Situation seitdem pihole aktiv ist: alle meine Clients laufen problemlos und nutzen pihole, allerdings bekomme ich seitdem keine Ping-Antwort über z.B. ping -c 4 google.com auf dem OMV Host selbst (ein ping direkt über 8.8.8.8 funktioniert). Ich habe auch die /etc/systemd/resolved.conf nach deiner Anleitung angepasst und zudem unter dem OMV GUI als zusätzlichen DNS Server 8.8.8.8 eingetragen. All dies führt nicht zum Erfolg mit der Folge das mein OMV keine Updates mehr erhält. Wenn ich in meinem Router das Gateway wieder auf ihn selbst umleite und nicht auf die pihole ip, dann läuft auch der ping wieder auf dem OMV Host. Ich nutze derzeit OMV Version 6.8.0.1 mit dem Kernel 6.1.21-v8+ auf meinem Raspberry-PI 4. Hat jemand dazu eine Idee?
Kommentar
Stefan (Team)
Geschrieben am22.08.2023
Sorry micha, das gibt HTML nicht her, da müsste man richtigen Code in den Kommentaren zu lassen, was aber zu gefährlich ist.
Kommentar
micha
Geschrieben am22.08.2023
Schade das in meinem Kommentar "Installieren vom pihole-Container im neuen Compose-Plugin von OMV ohne Verwendung von Portainer" die Leerstellen des pihole Compose File (yml) nicht vernüftig übernommen wurde. Ich versuche es nochmal hier. In der begrenzten Hoffnung das der Web-admin das richtig über nimmt. Ansonsten nutzt das keinem was!!!
Kommentar
micha
Geschrieben am20.08.2023
Installieren vom pihole-Container im neuen Compose-Plugin von OMV ohne Verwendung von Portainer:

Über SSH in OMV einloggen und folgende Befehle im Terminal eingeben:

sudo sed -i "s/#Cache=yes/Cache=no/g" /etc/systemd/resolved.conf
sudo sed -i "s/#DNSStubListener=yes/DNSStubListener=no/g" /etc/systemd/resolved.conf

dann entweder OMV neu starten oder systemd-resolved neu starten:
systemctl restart systemd-resolved

Mit dem Befehl sudo ip addr show ermitteln wir die Netzwerkschnittstelle und notieren sie uns. Die brauchen wir später für das Erstellen des VLan.
Dann erstellen wir die Ordner appdata, compose, pihole, etc-pihole und etc-dnsmasq.d mit den Befehlen.

cd /
sudo mkdir appdata
sudo mkdir compose
cd appdata
sudo mkdir pihole
cd pihole
sudo mkdir etc-pihole
sudo mkdir etc-dnsmasq.d

In diesem Beispiel ist das System auf der Partition sda2. Die Efi-Bootpartition befindet sich auf sda1

Arbeiten auf der Web-Oberfläche von OMV:
Unter OMV/System/omv-extras muss das Docker-repo aktiviert und der Compose Plugin in OMV installiert werden. Da ich nur drei Container benutze verwende ich für die Docker-Ordner das Systemlaufwerk auf dem sich OMV befindet. Das ist bei mir mit 120GB ausreichend groß. Über den OMV Backup-Plugin sichere ich die System SSD nach jeder größeren Veränderung am System. Da ist dann alles was mit Docker zusammenhängt mit gesichert. Damit erspare ich mir das Erstellen eines Backup-Ordners unter OMV/Dienste/Compose/Einstellungen für die Container. Um das Systemlaufwerk unter OMV/Datenspeicher/Dateisysteme benutzen zu können muss man unter OMV/System/Erweiterungen das Plugin OMV-Sharerootfs installieren und aktivieren.
Als nächstes unter OMV/Datenspeicher/Freigegebene Ordner die zwei auf dem Systemlaufwerk erstellten Ordner appdata und compose einbinden
Unter OMV/Dienste/Compose/Einstellungen unter Compose Files das erstellte Laufwerk compose und unter Data das erstellte Laufwerk appdata auswählen. Alles andere kann so bleiben wie es ist. Danach speichern und bestätigen. Sicherheitshalber bzw. wenn ein Fehler kommt unten Reinstall Docker anklicken und bestätigen. Wenn alles fehlerfrei verlaufen ist sicherheitshalber das System neu starten. Im Browser den Cache leeren und die OMV-Weboberfläche von OMV aufrufen.
In meinem Beispiel ist die Netzwerkschnittstelle die ich am Anfang mit sudo ip addr show ermittelt habe enp1s0. Ich verwende in dem Beispiel eine Fritzbox als Router mit der lokalen IP 192.168.178.1 .Falls ein anderer Router und/oder ein anderer lokaler Netzbereich genutzt wird muss das dementsprechend angepasst werden. Als nächstes erstellen wir unter OMV/Dienste/Compose/Networks eine VLan-Netzwerkschnittstelle. Die Plus-Schaltfläche anklicken, dann einen Namen eintragen (ich nenne sie in dem Beispiel pinet), unter Driver macvlan auswählen, unter Parent network die vorhandene Netzwerkschnittstelle (in diesen Beispiel enp1s0) auswählen, unter Subnet 192.168.178.0/24 (Abdeckung des Adressbereiches der durch die in den Beispiel genutzte Fritzbox abgedeckt wird), unter Gateway 192.168.178.1 (lokale Adresse der Fritzbox) und unter IP-rage z.B. 192.168.178.80/29 eintragen. Dann sichern und bestätigen. Erläuterung zu IP-rage: Mit diesen Eintrag (/29) können wir bis zu 6 Containern IP-Adressen, beginnend mit 192.168.178.81 zuweisen. Der Bereich muss allerdings in der Fritzbox frei sein und nicht durch andere lokale Geräte genutzt werden. Die erstellte VLan-Schnittstelle hat den großen Vorteil das man jeden Container eine eigene IP zuweisen kann. Das vermeidet Port-Konflikte.
Nachdem die VLan-Schnittstelle (bzw. Macvlan) erstellt wurde können wir uns an die Erstellung des pihole Containers machen. Unter OMV/Dienste/Compose/Files die Plus-Schaltfläche anklicken, Namen und Beschreibung vergeben (pihole/Werbeblocker) und unter File folgendes eintragen:

version: "3"
# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
pihole:
containername: pihole
image: pihole/pihole:latest
# For DHCP it is recommended to remove these ports and instead add: networkmode: "host"
ports:
- "53:53/tcp"
- "53:53/udp"
- "67:67/udp" # Only required if you are using Pi-hole as your DHCP server
- "80:80/tcp"
hostname: pihole
environment:
TZ: 'Europe/Berlin'
WEBPASSWORD: 'xxx'
# Volumes store your data between container upgrades
volumes:
- '/appdata/pihole/etc-pihole:/etc/pihole'
- '/appdata/pihole/etc-dnsmasq.d:/etc/dnsmasq.d'
# https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
restart: unless-stopped
networks:
pinet:
ipv4address: 192.168.178.81
networks:
pinet:
external: true

Für xxx unter WEBPASSWORD das eigene Passwort für die Web-Oberfläche von pihole eintragen. Die Leerstellen müssen exakt simmen. Am besten noch mit anderen compose-Beispielen im Netz vergleichen. Danach speichern und bestätigen. Unter OMV/Dienste/Compose/Files pihole anklicken, auf die Schaltfläche mit dem Pfeil nach oben klicken und wenn man Glück hat wird der pihole Container erstellt und gestartet.
Aufgerufen wird die Web-Oberfläche von pihole in diesem Beispiel mit der Adresse:
http://192.168.178.81/admin


Kommentar
Danny
Geschrieben am11.05.2023
Das Template funktioniert nicht! Ich habe es einfach wie weiter oben auf der Seite beschrieben gemacht, dort wo steht "Diesen Weg gehen wir in dieser Anleitung aber nicht". Einfach die Werte vom Template dann von Hand eintippen. Geht einwandfrei!

GoogleAds werde leider nicht geblockt. Ich denke es liegt an fehlendem IPv6.

Wie ist das mit IPv6 ? Jemand eine Idee? IPv6 DNS vom Pi-Hole ?
Kommentar
Stefan (Team)
Geschrieben am31.03.2023
Danke, da war meine Formulierung wohl unglücklich :)
Kommentar
pit
Geschrieben am25.03.2023
Kleine Korrektur:

@Stefan schreibt:
Die Weboberfläche von Pi-hole erreicht ihr in eurem Browser über die IP-Adresse eures NAS gefolgt von einem :1080

Ruft man diese Adresse auf, landet man auf einer "Placeholder page", die vom lighthttpd Webserver ausgespielt wird. Um den pi-hole zu erreichen, fehlt in der URL ein /admin .

Korrekt wäre demnach:
Die Weboberfläche von Pi-hole erreicht ihr in eurem Browser über die IP-Adresse eures NAS gefolgt von einem :1080/admin
Kommentar
Stefan (Team)
Geschrieben am26.02.2023
@manuel mir ist da nix negativ aufgefallen. Zur Not lässt sich die Änderung ja jederzeit rückgängig machen, sollten da irgendwelche Probleme auftauchen.
Kommentar
manuel
Geschrieben am25.02.2023
Da man den DNS Server verstellt, passiert da was wenn man den Server mal abschaltet?
Also kommt man noch mit den Geräten ins Internet?
Kommentar
pit
Geschrieben am13.02.2023
@cali:

> Nur komme ich nicht auf die Weboberfläche.
> Dann erscheint nur die "Placeholder page"

Die Adresse für den pi.hole im Container lautet:
IP-Adresse Doppelpunkt Port (hier 1010) Slash admin
Bsp.: 192.168.0.100:1080/admin
Kommentar
pit
Geschrieben am13.02.2023
Leider stimmt das Template nicht - bzw. hat es dem Autor beim copy/paste in den CMS Editor die Einrückungen (Leerzeichen) zerhauen. Bin nach längerem trial & error mit dieser Variante zum Ziel gekommen:

https://paste.debian.net/1270618/

Trotzdem Danke an @Stefan!
Kommentar
Cali
Geschrieben am12.02.2023
Hallo Leute,
ich hab es hinbekommen, den pihole laufen zu lassen. Dank eurer Kommentare. Nur komme ich nicht auf die Weboberfläche. Dann erscheint nur die "Placeholder page"

Was mache ich da falsch???
Kommentar
Christian
Geschrieben am15.01.2023
Anscheinend wird die Einrückung der Zeilen im Template in der Browser-Einstellung nicht gut wiedergegeben. Bei mir hat gerade geholfen, die Einrückung der Zeilen anhand anderer Template-Beispiele im Netz anzupassen (Beispiel: ports steht auf der gleichen Stufe wie hostname). Wirklich geholfen hat aber evtl. auch das Entfernen diverser Anführungszeichen im Template, u.a. bei ports und volumes). Danach liess sich das Template ohne Fehlermeldung deployen und der Container startete.
Kommentar
norga
Geschrieben am10.01.2023
jup, da passte etwas mit den Leerstellen nicht.... so hat Docker nicht mehr gemeckert (OMV6)

version: "3.9"

services:
pihole:
containername: pihole
image: pihole/pihole:latest
hostname: pihole
ports:
- "53:53/tcp" #DNS
- "53:53/udp" #DNS
- "1080:80/tcp" #Pi-hole Weboberfläche
- "10443:443/tcp" #Pi-hole Weboberfläche (SSL)
environment:
TZ: 'Europe/Berlin'
WEBPASSWORD: 'meinP@ssw0rd!' #Dein Passwort für die Pi-hole Webverwaltung (frei wählbar)
DNS1: '192.168.1.1' #Deine Router IP-Adresse
DNS2: ''
volumes:
- './etc-dnsmasq.d/:/etc/dnsmasq.d/'
- './etc-pihole/:/etc/pihole/'
dns:
- 127.0.0.1 #Der Pi-hole nutzt sich selbst als DNS-Server
capadd:
- NETADMIN #Erlaubt das Bearbeiten von Netzwerkeinstellungen im Container
restart: unless-stopped
Kommentar
Markus
Geschrieben am08.01.2023
Der Fehler tritt bei mir auf. Vielleicht erst mal dieses Tutorial vom Netz nehmen, ansonsten ist das doch etwas frustrierend. Wenn es einen Workaround gibt, den bitte nachpflegen.
Kommentar
micha
Geschrieben am01.12.2022
Ich habe das nicht hinbekommen (besser gesagt bei mir funktioniert das aus was weis ich für welchen Gründen nicht) und dann PiHole direkt auf die OMV-Nas installiert (ohne Docker). Da auf dem kleinen J4105-Rechner nur OMV und PiHole laufen habe ich Docker/Portainer deinstalliert.
OMV und PiHole zusammen auf der NAS

PiHole auf einen laufenden OMV-System über ssh installieren:
sudo apt-get update && sudo apt-get upgrade -y
Falls curl noch nicht installiert ist:
sudo apt install curl
PiHole installieren:
sudo curl -sSL https://install.pi-hole.net | bash
OMV:
Unter System/Workbench muss der Port 80 in einen anderen Port (z.B.: 1080) und bei Verwendung von der sicheren Verbindung Port 443 in ... geändert werden. Die Web-Oberfläche von OMV muss in dem Beispiel mit IP:1080 (z.B.: http://192.168.0.44:1080 ) gestartet werden. Weboberfläche PiHole wird in dem Beispiel mit http://192.168.0.44/admin gestartet.
System/ssh:
Ins Terminal über ssh nacheinander eingeben:
sudo sed -i "s/#Cache=yes/Cache=no/g" /etc/systemd/resolved.conf
sudo sed -i "s/#DNSStubListener=yes/DNSStubListener=no/g" /etc/systemd/resolved.conf
dann entweder neu starten oder systemd-resolved neu starten:
systemctl restart systemd-resolved
Ob es Probleme mit Port 67, den PiHole als DHCP-Server verwendet, gibt weis ich nicht da ich den DHCP-Server von PiHole nicht benötige und auch nicht eingeschaltet habe.
Kommentar
Jeti
Geschrieben am19.11.2022
So funktioniert es bei mir.
Die Leerzeichen vor den Sätzen sind da wichtig. Sehen zwar irgendwie gleich aus, sind es aber nicht.


version: "3.9"

services:
pihole:
containername: pihole
image: pihole/pihole:latest
hostname: pihole
ports:
- "53:53/tcp" #DNS
- "53:53/udp" #DNS
- "67:67/udp" #DHCP/Bootstrap
- "1080:80/tcp" #Pi-hole Weboberfläche
- "10443:443/tcp" #Pi-hole Weboberfläche (SSL)
environment:
TZ: 'Europe/Berlin'
WEBPASSWORD: 'DEINPASSWORT' #Dein Passwort für die Pi-hole Webverwaltung (frei wählbar)
DNS1: '192.168.1.2' #Deine Router IP-Adresse
DNS2: ''
volumes:
- './etc-dnsmasq.d/:/etc/dnsmasq.d/'
- './etc-pihole/:/etc/pihole/'
dns:
- 127.0.0.1 #Der Pi-hole nutzt sich selbst als DNS-Server
capadd:
- NETADMIN #Erlaubt das Bearbeiten von Netzwerkeinstellungen im Container
restart: unless-stopped
Kommentar
Stefan (Team)
Geschrieben am08.11.2022
Das hört sich ja nach einem Bug in OpenMediaVault 6 an. Muss dann mit einem Update gekommen sein, als ich es getestet hatte, funktionierte das einwandfrei.

Postet den Fehler doch im Bugtracker von OMV.
Kommentar
Thoma5
Geschrieben am06.11.2022
selbes Problem hier!
Deployment error failed to deploy a stack: services.capadd must be a mapping
Alle OMV 6 update eingespielt.
Damit für mich leider unbrauchbar.
Kommentar
andi
Geschrieben am06.11.2022
habe auch die Fehlermeldung "failed to deploy a stack: services.capadd must be a mapping"nwelche Leerstellen soll ich ändern ??
Kommentar
me
Geschrieben am01.10.2022
Hi
die Meldung hatte ich auch
Ich konnte es nur beheben indem ich alle Leerstellen neu gemacht habe.
Also alle Löschen und zwei bzw vier Leerstellen einfügen.
Kommentar
Stefan (Team)
Geschrieben am09.09.2022
Ist dein Linux auf dem neusten Stand ? Hört sich so an als ob Docker versucht einen Dienst zu registrieren aber dabei am OS scheitert
Kommentar
Andr?
Geschrieben am08.09.2022
Bei mir erscheint die Fehlermeldung nach dem Erstellen des Templates (Schaltfläche "Deploy the stack")

Deployment error
failed to deploy a stack: services.capadd must be a mapping

irgendjemand eine Idee woran es liegen könnte?

Diesen Artikel kommentieren:

Hinweis:

  • Nur Fragen / Antworten direkt zum Artikel
  • Kein Support für andere Hard- oder Software !


   
   
Ergebnis der Rechenaufgabe   Bild neu laden

   
optional
  Wenn Du eine E-Mail-Adresse angibst, informieren wir dich, sobald es hier etwas Neues gibt.
   
 
E-Mail Abo
E-Mail Benachrichtigung bei neuen Artikeln
RSS Feed
Abonniert unseren RSS-Feed
benötigt einen RSS-Reader