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.3
/var/log/powerdns
: Log files whenLOG_TO_STDOUT
is not set to1
./etc/powerdns/pdns.d
: Volume with configuration files.
LOG_TO_STDOUT
: If set to1
output 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.