IMPORTANT: When using this Docker image, please report any bugs or suggestions to this repository directly.
Pi-hole:
- Pi-hole is a DNS sinkhole that protects your devices from unwanted content, without installing any client-side software.
Unbound:
- Unbound is a validating, recursive, caching DNS resolver. It is designed to be fast and lean and incorporates modern features based on open standards.
Hyperlocal:
- To spare the initial DNS query to the DNS-Root-Servers by Unbound, we provide Unbound with an appropriate configuration. With each Pi-hole update, the DNS-Root-Zone (root.hints) is also updated.
- Install Docker
- Install Docker-Compose
- Download the repository to your favored directory
Copy example.env to .env and change the parameters
cp example.env .env
vi .env
Start the container
docker-compose up -d
Check the logs
docker-compose logs -f
If you get the following error
pihole | Starting unbound
pihole | [✗] DNS resolution is currently unavailable
uncomment the following line in the docker-compose.yaml
#- ./resolv.conf:/etc/resolv.conf
and restart the container
docker-compose up -d --force-recreate
docker exec -it pihole-unbound bash
dig github.com @127.0.0.1 +short
dig sigfail.verteiltesysteme.net @127.0.0.1 | grep status
dig sigok.verteiltesysteme.net @127.0.0.1 | grep status
- First dig should show an IP address
- Second dig should show status: SERVFAIL
- Last dig should show status: NOERROR
If you are running other docker containers on the same host and cannot use name resolution within these containers, you have to modify /etc/resolvconf.conf on your host system and uncomment the following:
# If you run a local name server, you should uncomment the below line and
# configure your subscribers configuration files below.
name_servers=127.0.0.1
Write the changes to your resolv.conf:
sudo resolvconf -u
See also StackExchange