Prima di tutto è necessario che abbiate installato Docker. Qui la guida per Raspberry Pi e qui per Ubuntu.

Poi aprite il terminale ed eseguite:
docker run -d \ --name pihole \ -p 53:53/tcp -p 53:53/udp \ -p 80:80 \ -e TZ="America/Chicago" \ -v "$(pwd)/etc-pihole/:/etc/pihole/" \ -v "$(pwd)/etc-dnsmasq.d/:/etc/dnsmasq.d/" \ --dns=127.0.0.1 --dns=1.1.1.1 \ --restart=unless-stopped \ --hostname pi.hole \ -e VIRTUAL_HOST="pi.hole" \ -e PROXY_LOCATION="pi.hole" \ pihole/pihole:latest
Per visualizzare la password dovrete andare sull’indirizzo IP locale (se volete configurare un indirizzo IP statico a Raspberry Pi OS, qui la guida) eseguite:
docker exec -it pihole pihole -a -p
E come indicato in questo thread, se volete utilizzare Pi-hole come DNS all’interno di altri container Docker, dovrete modificare la terza riga con la specifica dell’indirizzo IP locale. Ad esempio se il vostro IP è 192.168.1.2
:
-p 53:53/tcp -p 192.168.1.2:53:53/udp
Successivamente, se volete configurarlo anche agli altri container su Docker, vi basterà seguire questi passaggi.