Find the fastest DNS in your location to improve internet browsing experience.
5.5K
A fast, cross-platform DNS benchmarking CLI. This image runs the dns-bench binary inside a container so you can benchmark public DNS servers and print results in multiple formats (table, JSON, XML, CSV).
Pull the image:
docker pull qwerty541/dns-bench:latest
Run an interactive benchmark (default command runs dns-bench --skip-system-servers --skip-gateway-detection):
docker run --rm -it --name dns-bench qwerty541/dns-bench:latest
Show help:
docker run --rm -it --name dns-bench qwerty541/dns-bench:latest --help
Run with options (example):
docker run --rm -it --name dns-bench \
qwerty541/dns-bench:latest \
--requests 50 --domain microsoft.com --style re-structured-text
Example (read-only mount):
docker run --rm -it --name dns-bench \
--volume /path/to/ipv4-custom-servers.txt:/servers.txt:ro \
qwerty541/dns-bench:latest \
--custom-servers-file /servers.txt
/root/.dns-bench/config.toml inside the container./root/.dns-bench.Example:
mkdir -p "$PWD/.dns-bench"
docker run --rm -it --name dns-bench \
--volume "$PWD/.dns-bench:/root/.dns-bench" \
qwerty541/dns-bench:latest \
--save-config
docker run --rm -it --name dns-bench --network host qwerty541/dns-bench:latest
dns-bench can print results as a human-readable table (default), JSON, XML, or CSV.
Examples:
# JSON
docker run --rm -it --name dns-bench \
qwerty541/dns-bench:latest \
--format json
# XML
docker run --rm -it --name dns-bench \
qwerty541/dns-bench:latest \
--format xml
# CSV (save to a file on the host)
docker run --rm --name dns-bench \
qwerty541/dns-bench:latest \
--format csv \
> results.csv
If your Docker daemon user/group setup allows, you may run the container as your current user:
docker run --rm -it --name dns-bench \
--user "$(id -u):$(id -g)" \
--volume "$PWD/.dns-bench:/root/.dns-bench" \
--volume /path/to/servers.txt:/servers.txt:ro \
qwerty541/dns-bench:latest \
--custom-servers-file /servers.txt
Note: ensure mounted directories are readable/writable by the chosen UID/GID as needed.
docker run --rm -it --name dns-bench qwerty541/dns-bench:latest
docker run --rm -it --name dns-bench \
qwerty541/dns-bench:latest \
--threads 16 --requests 50
docker run --rm -it --name dns-bench \
qwerty541/dns-bench:latest \
--lookup-ip v6 --name-servers-ip v6
mkdir -p "$PWD/.dns-bench"
# Save current flags
docker run --rm -it --name dns-bench \
--volume "$PWD/.dns-bench:/root/.dns-bench" \
qwerty541/dns-bench:latest \
--save-config
# Next run uses saved config by default
docker run --rm -it --name dns-bench \
--volume "$PWD/.dns-bench:/root/.dns-bench" \
qwerty541/dns-bench:latest
All CLI options and subcommands are documented in the project README:
--network host on Linux to reduce overhead.--timeout or reduce --requests/--threads./root/.dns-bench directory is bind-mounted and writable.Licensed under either of
at your option.
Content type
Image
Digest
sha256:4b00b9a44…
Size
30.1 MB
Last updated
9 months ago
docker pull qwerty541/dns-bench