Sign inSign up

udp1024/bind9

By udp1024

•Updated 6 days ago

Multi-arch (amd64/arm64) ISC BIND 9 DNS server built daily from official ISC PPA on Ubuntu 24.04.

Image
0

179

udp1024/bind9 repository overview

⁠Multi-Arch ISC BIND 9 DNS Server (amd64 / arm64)

Build & Publish Multi-Arch BIND 9 Docker Pulls Docker Image Size Architectures GitHub Actions

Automated, multi-architecture Docker container running ISC BIND 9, built directly from the official ISC Launchpad PPA⁠ on Ubuntu 24.04 LTS (Noble Numbat).


⁠⚡ Why Use This Image?

Featureudp1024/bind9Official internetsystemsconsortium/bind9Distro ubuntu/bind9
Native ARM64 / Raspberry PiYes (linux/arm64)❌ No (amd64 only)Yes
Latest ISC Point ReleasesYes (tracks official PPA)⚠️ Often lagging❌ Frozen on distro release
Automated Daily SyncYes (GitHub Actions at 06:00 UTC)Manual / InfrequentDistro release cycle
Clean Privilege SeparationYes (runs as bind:bind)YesYes
  1. Native Multi-Arch: Built natively for both linux/amd64 and linux/arm64. Prevents exec format error on Apple Silicon, Raspberry Pi 4/5, and ARM64 cloud instances (AWS Graviton, Oracle Ampere).
  2. Always Up-to-Date: Standard distribution packages freeze on older releases. This image automatically tracks the official ISC PPA to provide current maintenance releases (e.g., BIND 9.20.x) with the latest security fixes and DNS standards support.
  3. Automated CI/CD: A scheduled runner checks the ISC PPA daily and automatically publishes new versions as multi-arch manifests.

⁠🖥️ Supported Architectures

  • linux/amd64: x86_64 servers, workstations, and hypervisors.
  • linux/arm64: Raspberry Pi 4/5, Apple Silicon (M1/M2/M3/M4), AWS Graviton, Ampere Altra.

⁠🏷️ Tags

  • latest: Points to the most recent stable BIND 9 build.
  • 9.20: Tracks the latest release in the BIND 9.20 stable branch.
  • 9.20.x (e.g. 9.20.30): Pinned specific patch releases for reproducible deployments.

⁠🚀 Quick Start

⁠1. Direct docker run
docker run -d \
  --name bind9 \
  --restart unless-stopped \
  --net host \
  -v /mnt/data/bind/conf:/etc/bind/conf \
  -v /mnt/data/bind/zones:/var/cache/bind/zones \
  -v /mnt/data/bind/hints:/var/cache/bind/hints \
  -v /mnt/data/bind/logs:/var/log \
  udp1024/bind9:latest \
  named -g -c /etc/bind/conf/named.conf
⁠2. Docker Compose
version: '3.8'

services:
  bind9:
    image: udp1024/bind9:latest
    container_name: bind9
    restart: unless-stopped
    network_mode: host
    environment:
      - TZ=UTC
      - BIND9_USER=bind
    volumes:
      - /mnt/data/bind/conf:/etc/bind/conf
      - /mnt/data/bind/zones:/var/cache/bind/zones
      - /mnt/data/bind/hints:/var/cache/bind/hints
      - /mnt/data/bind/logs:/var/log
    command: ["named", "-g", "-c", "/etc/bind/conf/named.conf"]

⁠⚙️ Configuration & Volumes

Container PathDescriptionRecommended Permissions
/etc/bind/confConfiguration files (named.conf, options, local zones)bind:bind
/var/cache/bind/zonesMaster, slave, and dynamic zone filesRead / Write for bind:bind
/var/cache/bind/hintsRoot hint files (named.root)Read-only
/var/log or /var/log/namedDNS query, security, and general logsRead / Write for bind:bind
⁠Environment Variables
VariableDefaultDescription
BIND9_USERbindSystem user executing the named daemon.
USE_CONFIG_FILE_LOGGING(unset)If set to any value, named starts with -f instead of -g to allow logging clauses in named.conf to handle all logging destinations.
TZUTCTimezone for the container log timestamps (e.g. America/New_York, Europe/London).

⁠🔍 Verification

Verify that BIND 9 is running and responding:

# Query the local BIND 9 instance
dig @127.0.0.1 -p 53 example.com

# Check version inside the container
docker exec -it bind9 named -v

Tag summary

Content type

Image

Digest

sha256:c6c3bff60…

Size

51.4 MB

Last updated

6 days ago

docker pull udp1024/bind9