Docker image for ISC DHCP server
This Docker image is suitable for running a DHCP server for your docker host
network. It uses ISC DHCP server which is bundled with the latest Ubuntu
How to build
- Install Docker with the instructions on https://www.docker.com.
./buildto create the local docker image
How to use
The most common use-case is to provide DHCP service to the host network of
the machine running Docker. For that you need to create a configuration for
the DHCP server, start the container with the
--net=host docker run
option and specify the network interface you want to provide DHCP service
data/dhcpd.confwith a subnet clause for the specified
network interface. If you need assistance, you can run
docker run -it --rm networkboot/dhcpd man dhcpd.conffor a description
of the configuration file syntax.
docker run -it --rm --net=host -v "$(pwd)/data":/data networkboot/dhcpd eth0.
dhcpdwill automatically start and display its logs on the console.
You can press Ctrl-C to terminate the server.
run script is also included which makes it quick to iterate on a
configuration until you're satisfied.
The entrypoint script in the docker image takes care of running the DHCP
server as the same user that owns the
data folder. This ensures that the
permissions on the files inside the
data folder is kept consistent. If
data folder is owned by root, dhcpd is run as the normal dhcpd user.
If you forget to run the docker container with the
--net=host option a
warning will be emitted informing you that you've probably forgotten it.
/data volume is not provided with a
dhcpd.conf inside it, the
container will exit early with an error message.
This image uses the following software components:
- Ubuntu Linux distribution from https://www.ubuntu.com.
- ISC DHCP server from https://www.isc.org/downloads/dhcp/.
- Dumb-init from https://github.com/Yelp/dumb-init.
Copyright & License
This project is copyright 2017 Robin Smidsrød firstname.lastname@example.org.
It is licensed under the Apache 2.0 license.
See the file LICENSE for full legal details.