Getting Started

Installation

How to run DNS Resolver from Docker or build it from source.

Installation

Requirements

  • Docker 20.10+ with access to the Docker socket (/var/run/docker.sock)
  • Docker Compose CLI v2.24+ — required for the inline configs.content interpolation used in the compose example (only needed if you use the acme-dns sidecar)
  • Port 53 (UDP and TCP) available on HOST_IP
On Linux hosts, systemd-resolved typically occupies port 53 on 127.0.0.53. Binding dns-resolver to HOST_IP (your LAN IP) instead of 0.0.0.0 avoids this conflict. See the Quick Start for the recommended ports mapping.

Pull the published image

docker pull ghcr.io/circle-rd/dns-resolver:latest

The image is published to the GitHub Container Registry on every release and supports three architectures:

TagPlatforms
latestlinux/amd64, linux/arm64, linux/arm/v7
<sha>same, pinned to a specific commit

Build from source

git clone https://github.com/circle-rd/dns-resolver.git
cd dns-resolver
docker build -t dns-resolver .

The Dockerfile uses a multi-stage build:

  1. Copies the coredns binary from coredns/coredns:1.12.0
  2. Copies the docker-gen binary from nginxproxy/docker-gen:latest
  3. Assembles a final alpine:3.21 image with gettext for envsubst, both binaries, the templates, and the entrypoint

Verify the image

docker run --rm ghcr.io/circle-rd/dns-resolver:latest coredns --version

Expected output:

CoreDNS-1.12.x
...
Copyright © 2026