Forked and modified to
- base from plain alpine --> supports arm archituctures (raspberry pi)
- start busybox syslogd (to allow sys logging if needed)
- start plain dnsmasq (no default params)
Write your dnsmasq.conf on the host and mount it at /etc/dnsmasq.conf
docker run --name dnsmasq --cap-add=NET_ADMIN --net=host -d -v dnsmasq.conf:/etc/dnsmasq.conf jvdneste/dnsmasq
Connect to the container
docker exec -it dnsmasq /bin/ash
The image is about 4mb on a raspberry pi
It's a dnsmasq Docker image. It is only 6 MB in size. It is just an ENTRYPOINT
to the dnsmasq
binary. Can you smell what the rock is cookin'?
It is usually a good idea to use a tag other than latest
if you are using this image in a production setting. There are currently two tags to choose from:
andyshinn/dnsmasq:2.72
: dnsmasq 2.72 based on Alpine 3.2andyshinn/dnsmasq:2.75
: dnsmasq 2.75 based on Alpine 3.3andyshinn/dnsmasq:2.76
: dnsmasq 2.76 based on Alpine 3.4andyshinn/dnsmasq:2.78
: dnsmasq 2.78 based on Alpine Edge
dnsmasq requires NET_ADMIN
capabilities to run correctly. Start it with something like docker run -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN andyshinn/dnsmasq:2.75
.
The configuration is all handled on the command line (no wrapper scripts here). The ENTRYPOINT
is dnsmasq -k
to keep it running in the foreground. If you wanted to send requests for an internal domain (such as Consul) you can forward the requests upstream using something like docker run -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN andyshinn/dnsmasq:2.75 -S /consul/10.17.0.2
. This will send a request for redis.service.consul
to 10.17.0.2
As this is a very barebones entrypoint with just enough to run in the foreground, there is no logging enabled by default. To send logging to stdout you can add --log-facility=-
as an option.