DNS-server in Docker: 4 configs, poorten & fixes (2026)

DNS server reageert niet

Geupdate op:

DNS

Wil je zelf een DNS-server draaien in Docker om lokaal domeinen te beheren of netwerkbrede advertenties te blokkeren? De snelste manier in 2026 is het gebruik van een kant-en-klare Docker-container zoals Pi-hole (versie 2026.04), AdGuard Home of CoreDNS. Je hebt hiervoor een server nodig (zoals een Raspberry Pi of NAS), Docker Compose en een vrij poortnummer 53. Als je apparaten de foutmelding “DNS-server reageert niet” geven, ligt dit bij Docker-setups vrijwel altijd aan een conflict met systemd-resolved op de host, of aan verkeerde netwerkisolatie.

Waarom een DNS-server in Docker draaien?

Een DNS-server (Domain Name System) vertaalt leesbare domeinnamen naar IP-adressen. Normaliter gebruik je de DNS-server van je internetprovider of een publieke dienst zoals Cloudflare (1.1.1.1). Door zelf een DNS-server lokaal te draaien, krijg je volledige controle over je netwerkverkeer. Het gebruik van Docker voegt daar nog een extra laag aan flexibiliteit aan toe.

De belangrijkste voordelen van een dns server in docker op een rij:

  • Snelle implementatie: Je hoeft geen complexe Linux-pakketten te installeren. Eén docker-compose.yml bestand is genoeg om je server binnen seconden online te brengen.
  • Volledige isolatie: De DNS-software draait afgeschermd van je host-besturingssysteem. Dit voorkomt conflicten met andere applicaties en houdt je server schoon.
  • Makkelijk updaten: In 2026 updaten we containers simpelweg door de nieuwste image-tag te pullen (bijvoorbeeld pihole/pihole:2026.04.1). Gaat er iets mis? Dan rol je direct terug naar de vorige versie.
  • Netwerkbrede ad-blocking: Met tools zoals Pi-hole of AdGuard Home fungeert je Docker-container als een ‘sinkhole’. Advertenties en trackers worden op DNS-niveau geblokkeerd voor elk apparaat op je wifi-netwerk, zonder dat je per apparaat software hoeft te installeren.
  • Lokale domeinen: Voor ontwikkelaars is het ideaal. Je kunt domeinen zoals app.lokaal direct laten verwijzen naar je testomgevingen [INTERNAL:dns-server-instellen].

De 4 beste DNS-server Docker images van 2026

Niet elke DNS-server is hetzelfde. Sommige zijn gebouwd voor ad-blocking, andere voor complexe bedrijfsnetwerken of razendsnelle microservices. In 2026 zien we vier grote spelers die de Docker-wereld domineren.

1. Pi-hole (Versie v6 / 2026.04)

Pi-hole is de absolute favoriet voor thuisgebruikers. In april 2026 is Pi-hole v6 (Docker tag 2026.04.1) gelanceerd, wat een flinke prestatieverbetering met zich meebracht. Pi-hole FTL (Faster Than Light) laadt nu historische DNS-queries asynchroon in, waardoor de server direct na een herstart queries kan beantwoorden. Ook is er een nieuwe optie (database.forceDisk) toegevoegd voor apparaten met weinig werkgeheugen, zoals oudere Raspberry Pi’s. Pi-hole blinkt uit in netwerkbrede ad-blocking en heeft een zeer overzichtelijk dashboard.

2. AdGuard Home (v0.107.x)

AdGuard Home is het krachtigere alternatief voor Pi-hole. Het grote voordeel in 2026 is dat AdGuard Home standaard ‘out-of-the-box’ ondersteuning biedt voor versleutelde DNS, zoals DNS-over-HTTPS (DoH) en DNS-over-TLS (DoT). Waar je bij Pi-hole vaak een extra container (zoals unbound of cloudflared) moet draaien voor encryptie, regelt AdGuard Home dit zelf. De nieuwste versies (zoals 0.107.74) bevatten belangrijke beveiligingsupdates voor de onderliggende Go-omgeving.

3. CoreDNS (v1.14.x)

CoreDNS is fundamenteel anders. Dit is een DNS-server geschreven in Go, die standaard wordt gebruikt binnen Kubernetes-clusters. Toch kun je CoreDNS ook uitstekend als losse Docker-container draaien voor je eigen netwerk. Het werkt via een zogenaamde Corefile en is extreem modulair. Wil je DNS-records koppelen aan draaiende Docker-containers? Dan is CoreDNS met de juiste plugins de beste en lichtste keuze. Het is minder geschikt voor ad-blocking, maar perfect voor service discovery en routing in ontwikkelomgevingen.

4. BIND9 (v9.20.x)

BIND9 is de dinosaurus van de DNS-wereld, maar nog steeds extreem relevant. De officiële Docker-image wordt onderhouden door Canonical (de makers van Ubuntu). BIND9 wordt vooral gebruikt voor complexe zone-beheertaken, master-slave replicatie en enterprise-omgevingen. In 2026 is de 9.20.x tak de standaard voor stabiele, robuuste DNS-infrastructuur. Het is niet de makkelijkste om in te stellen, maar wel de meest veelzijdige als je je aan de RFC-standaarden moet houden.

Vergelijkingstabel: DNS Docker Images (2026)

Docker Image Primaire focus Web interface? Versleuteling (DoH/DoT) Ideaal voor
Pi-hole Ad-blocking & sinkholing Ja Via extra tool (Unbound) Thuisnetwerken, Raspberry Pi
AdGuard Home Ad-blocking & privacy Ja Ingebouwd Gevorderde thuisgebruikers
CoreDNS Service discovery / Cloud Nee Ingebouwd (via plugins) Developers, Kubernetes, CI/CD
BIND9 Authoritative DNS Nee Afhankelijk van setup Enterprise, complexe zones

Stap-voor-stap: Pi-hole DNS instellen via Docker Compose

De makkelijkste manier om een dns server in docker te lanceren, is via Docker Compose. We gebruiken in dit voorbeeld Pi-hole, omdat dit voor de meeste lezers de directste meerwaarde biedt. Zorg dat je Docker en Docker Compose geïnstalleerd hebt op je host (bijvoorbeeld een Ubuntu-server of NAS).

1. Maak de mappenstructuur aan

Maak een nieuwe map aan op je server en navigeer hiernaartoe. We maken ook direct de mappen aan voor de persistente data, zodat je instellingen niet verdwijnen als de container herstart.

mkdir -p /opt/pihole
cd /opt/pihole
mkdir -p etc-pihole etc-dnsmasq.d

2. Creëer het docker-compose.yml bestand

Maak een bestand genaamd docker-compose.yml aan en plak de volgende 2026-actuele configuratie:

version: "3"

services:
pihole:
container_name: pihole
image: pihole/pihole:2026.04.1
ports:
- "53:53/tcp"
- "53:53/udp"
- "80:80/tcp"
environment:
TZ: 'Europe/Amsterdam'
WEBPASSWORD: 'JouwGeheimeWachtwoord'
PIHOLE_DNS_: '1.1.1.1;1.0.0.1'
volumes:
- './etc-pihole:/etc/pihole'
- './etc-dnsmasq.d:/etc/dnsmasq.d'
restart: unless-stopped

Korte uitleg van deze configuratie:

  • Poort 53 (TCP/UDP): Dit is de standaardpoort voor DNS-verkeer. Apparaten in je netwerk sturen hun verzoeken naar deze poort.
  • Poort 80 (TCP): Dit is de poort voor de webinterface waar je statistieken kunt inzien.
  • WEBPASSWORD: Pas dit aan. Hiermee log je in op het dashboard.
  • PIHOLE_DNS_: Dit is je ‘upstream’ DNS. Als Pi-hole een domein niet kent (en het is geen advertentie), vraagt hij het aan deze server. Hier is gekozen voor Cloudflare (1.1.1.1).
  • restart: unless-stopped: Zorgt ervoor dat je DNS-server automatisch opstart als je host-apparaat herstart.

3. Start de DNS-server

Draai het volgende commando in de terminal om de container op de achtergrond te starten:

docker compose up -d

Na ongeveer 30 seconden is je Pi-hole online. Je kunt nu via je browser navigeren naar http://[IP-VAN-JE-SERVER]/admin en inloggen met je gekozen wachtwoord.

4. Stel je router in

Om ervoor te zorgen dat alle apparaten in je huis deze nieuwe DNS-server gebruiken, moet je inloggen op je router (vaak via 192.168.1.1 of 192.168.1.254). Zoek naar de DHCP-instellingen en verander de ‘Primary DNS’ naar het IP-adres van de server waarop je Docker draait. Sla dit op en herstart je router of de wifi op je apparaten. Vanaf nu loopt al je netwerkverkeer via je eigen Docker-container.

Problemen oplossen: “DNS-server reageert niet” in Docker

Het draaien van een DNS-server in Docker gaat niet altijd in één keer goed. De gevreesde foutmelding “DNS-server reageert niet” of

Plaats een reactie