pyIPAM - Docker Plugin for IPAM written in Python
Jacek Kowalski
2026-03-11 a4d4f806e8d9a9f019c18c667afa1e703b4bf97e
README.md
@@ -5,9 +5,12 @@
It should be a drop-in replacement for "default" IPAM module.
![Build status](https://github.com/jacekkow/docker-plugin-pyipam/workflows/Release/badge.svg)
## Installation
Plugin is packaged as [Docker Engine-managed plugin](https://docs.docker.com/engine/extend/).
Check out [plugin page on Docker Hub](https://hub.docker.com/p/jacekkow/pyipam).
To install it simply run:
@@ -18,11 +21,36 @@
Then you can use it in newly-created networks:
```bash
docker network create --ipam-driver jacekkow/pyipam new-network
docker network create --ipam-driver jacekkow/pyipam:latest new-network
```
Check out [`test_integration.sh`](test_integration.sh) for more examples.
## Options
To use options, add `--ipam-opt option=value` as an argument of `docker network create`:
```bash
docker network create --ipam-driver jacekkow/pyipam:latest --ipam-opt ptp=1 new-network
```
Available options:
`ptp=1`
When set addresses with netmask /32 (IPv4) or /128 (IPv6) are handed out.
In this mode all IP addresses are handed out from the subnet,
including ones that would be "network address" and "broadcast address"!
`validate=0`
Do not validate duplicate IP address assignment. This IPAM plugin would
then happily hand out already-used addresses if such were manually specified.
This option does not affect automatic assignments.
Note that this module does not track how many times the IP was handed out,
hence if two containers have the same IP and one of them stops,
IP will be marked as free!
## Manual packaging
In order to test this module in development environment, you can build it
@@ -30,5 +58,3 @@
You can also use `package.sh` helper script which will perform
all the steps (including installation) automatically.