ubuntu/bind9

Verified Publisher

By Canonical

Updated 2 days ago

BIND 9 is a very flexible, full-featured DNS system. Long-term versions maintained by Canonical.

Image
Networking
119

1M+

ubuntu/bind9 repository overview

ubuntu/bind9 is a rock for bind9 maintained by Canonical.

BIND 9 provides software for Domain Name System (DNS) management including both defining domain names authoritatively for a given DNS zone, and recursively resolving domain names to their IP addresses.

[Learn more about bind9]

Tags and Architectures

NOTE: These tags follow a specific naming convention that respects the concept of channels.

TagsSupported untilVersionBaseArchitectures
9.18-24.04_beta05/20299.1824.04amd64, arm64, ppc64le, s390x
9.18-22.04_beta06/20279.1822.04amd64, ppc64le, s390x, arm64
9.20-26.04_edge05/20319.2026.04amd64, ppc64le, s390x, arm64
9.18-24.04_edge05/20299.1824.04amd64, arm64, ppc64le, s390x
9.18-22.04_edge06/20279.1822.04amd64, ppc64le, s390x, arm64
View deprecated tags
TagsSupport ended onUpgrade Path
9.20-25.04_beta
aliases9.20-25.04_edge, edge, latest
01/2026 -
9.20-24.10_beta
aliases9.20-24.10_edge
07/2025 -
9.18-23.10_beta
aliases9.18-23.10_edge
07/2024 -
9.18-23.04_beta
aliases9.18-23.04_edge
01/2024 -
9.18-22.10_beta
aliases9.18-22.10_edge
07/2023 -
9.16-21.10_beta
aliases9.16-21.10_edge
07/2022 -
9.16-20.04_beta
aliases9.16-20.04_edge
05/2025 -

Get started

This rock's entrypoint is Pebble, a container-optimized init process that enables the orchestration of a collection of local service processes as an organized set.

[Learn more about Pebble]

Inspect

To view the Pebble services and checks defined in this rock:

docker run --rm ubuntu/bind9:9.20-25.04_beta plan
For an older version that is not a rock

The container spins up with the default entrypoint. To inspect the entrypoint and command:

docker inspect --format='{{.Config.Entrypoint}} {{.Config.Cmd}}' ubuntu/bind9:9.20-25.04_beta
Run

To run this rock, use any of the usual container runtimes, for example, docker:

docker run --name bind9-container \
    -e TZ=UTC  -p 30053:53/tcp -p 30053:53/udp \
    ubuntu/bind9:9.20-25.04_beta \
    --args <named-args>

Access your Bind9 server at localhost:30053

Additionally, you can use rndc to manage the server:

docker exec bind9-container rndc <command>

A rndc key must have been previously generated either by mounting a volume containing a rndc.key file or by running rndc-confgen with:

docker exec bind9-container rndc-confgen -a
docker restart bind9-container
For an older version that is not a rock
docker run --name bind9-container \
    -e TZ=UTC -p 30053:53/tcp -p 30053:53/udp \
    ubuntu/bind9:9.20-25.04_beta \
    <named-args>

Access your Bind9 server at localhost:30053

Get logs

To view the logs of the running container, run:

docker exec bind9-container pebble logs

Or, for a specific service:

docker exec bind9-container pebble logs <service>
For an older version that is not a rock

To view the logs of the running container, run:

docker logs bind9-container
Monitor health checks

Rocks may have predefined health checks that you can list by running:

docker exec bind9-container pebble checks

The overall health of your container can be inspected via:

docker exec bind9-container pebble health

Deploy with Kubernetes

Works with any Kubernetes; if you don't have one, we recommend you install MicroK8s. Then, run microk8s.enable dns storage and snap alias microk8s.kubectl kubectl.

Download bind9-deployment.yml and set containers.bind9.image in bind9-deployment.yml to your chosen channel tag (e.g. ubuntu/bind9:9.20-25.04_beta), then:

kubectl apply -f bind9-deployment.yml

You will now be able to connect to the bind9 server on http://localhost:30053.

Configuration

Environment variables
OptionDescriptionDefault
-e TZ=UTCTimezoneNone
-e BIND9_USER=<user>The user which will start the named process. Deprecated on 9.20-26.04 onwards, use -u <user> instead.None
Volumes
OptionDescriptionDefault
-v /path/to/config:/etc/bind/named.conf:roLocal configuration file named.conf (try this example)None
-v /path/to/data:/var/cache/bindLocation where locally cached data can be dumped.None
-v /path/to/resource:/var/lib/bindLocation of Resource Records defining various domain information.None
Ports
OptionDescriptionDefault
-p 30053:53Expose bind9 on localhost:30053None
Other configuration options
OptionDescriptionDefault
-u <user>The user that the bind9 server will run as. Can optionally be set to bind._daemon_
--args <named-args>Optional arguments to override the defaults being passed to named when the container starts.-g

[Report a bug] [Contribute]

Canonical is the provider of this container image. It is the user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within, as well as with Canonical’s IP Policy.

Tag summary

Content type

Image

Digest

sha256:c7d8a0874

Size

15.3 MB

Last updated

2 days ago

Requires Docker Desktop 4.37.1 or later.

This week's pulls

Pulls:

27,795

Jun 1 to Jun 7