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.contentinterpolation used in the compose example (only needed if you use theacme-dnssidecar) - 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:
| Tag | Platforms |
|---|---|
latest | linux/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:
- Copies the
corednsbinary fromcoredns/coredns:1.12.0 - Copies the
docker-genbinary fromnginxproxy/docker-gen:latest - Assembles a final
alpine:3.21image withgettextforenvsubst, 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
...