On this page:

You are viewing documentation for CNI version: v1.0

CNI v1.0 documentation is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the latest release, v1.1, or the current documentation.

dhcp plugin



With dhcp plugin the containers can get an IP allocated by a DHCP server already running on your network. This can be especially useful with plugin types such as macvlan . Because a DHCP lease must be periodically renewed for the duration of container lifetime, a separate daemon is required to be running. The same plugin binary can also be run in the daemon mode.


To use the dhcp IPAM plugin, first launch the dhcp daemon:

# Make sure the unix socket has been removed
$ rm -f /run/cni/dhcp.sock
$ ./dhcp daemon

If given -pidfile <path> arguments after ‘daemon’, the dhcp plugin will write its PID to the given file.
If given -hostprefix <prefix> arguments after ‘daemon’, the dhcp plugin will use this prefix for DHCP socket as <prefix>/run/cni/dhcp.sock. You can use this prefix for references to the host filesystem, e.g. to access netns and the unix socket.
If given -broadcast=true argument after ‘daemon’, the dhcp plugin will enable the broadcast flag on DHCP packets.
If given -timeout <duration> arguments after ‘daemon’, the dhcp daemon will time out unanswered dhcp requests after this duration, defaults to 10s.

Alternatively, you can use systemd socket activation protocol. Be sure that the .socket file uses /run/cni/dhcp.sock as the socket path.

With the daemon running, containers using the dhcp plugin can be launched.

Example configuration

	"ipam": {
		"type": "dhcp"

Network configuration reference

  • type (string, required): “dhcp”