https://gitlab.com/tozd/docker/powerdns
Available as:
tozd/base ← tozd/dinit ← tozd/powerdns
ubuntu-trusty: powerdns-server 3.3ubuntu-xenial: powerdns-server 4.0.0-alpha2ubuntu-bionic: powerdns-server 4.1.1ubuntu-focal: powerdns-server 4.2.1ubuntu-jammy: powerdns-server 4.5.3ubuntu-noble: powerdns-server 4.8.3
/var/log/powerdns: Log files whenLOG_TO_STDOUTis not set to1./etc/powerdns/pdns.d: Volume with configuration files.
LOG_TO_STDOUT: If set to1output logs to stdout (retrievable usingdocker logs) instead of log volumes.
53/udp: DNS port on which PowerDNS listens.53/tcp: DNS port on which PowerDNS listens.
Image providing PowerDNS DNS server.
When LOG_TO_STDOUT is set to 1, Docker image logs output to stdout and stderr. All stdout output is JSON.
You configure it by mounting a volume into /etc/powerdns/pdns.d with files to configure PowerDNS. For example,
a simple pdns.conf file could look like:
# Disable recursion.
allow-recursion=
# We use dinit to assure the process is running.
guardian=no
daemon=no
# DNS master & slave.
master=yes
slave=no
# Allow AXFR.
disable-axfr=no
# Allow slave.
allow-axfr-ips=123.123.123.123/32
# To be anonymous.
version-string=anonymous
Enable Bind backend with pdns.simplebind.conf:
launch=bind
bind-config=/etc/powerdns/bindbackend.conf
bind-check-interval=3600
And your /etc/powerdns/bindbackend.conf could look like:
zone "example.com" {
type master;
file "/etc/powerdns/bind/example.com";
};
This example mounts an additional /etc/powerdns/bindbackend.conf file and additional directory /etc/powerdns/bind.
Of course you can also just extend this Docker image and add those files and directories there.
There is also a read-only GitHub mirror available, if you need to fork the project there.