This is a docker container packaging up the iVentoy tool https://iventoy.com
The image is based on Debian 12 Bookworm slim version and uses supervisor to launch the process.
Note: The way iVentoy has been developed is really weird, there's no daemon or flags (I can find), so just ignore supervisor warnings for now.
Docker Tag:
- 1.0.20-1 : iVentoy v1.0.20, Logs symlinked from /iventoy/log/log.txt to syslog
- 1.0.20 : iVentoy v1.0.20
- 1.0.19 : iVentoy v1.0.19
It uses sysvfs so the container needs to be ran in privileged mode (not ideal!) and also needs port 69 which is in a privileged range.
By default, I can't find a way of manipulating the configuration at first start. Unfortunately iVentoy operates it's own DHCP server and will need to be configured to use a external DHCP server in the configuration.
For configuration of various DHCP servers see the docs/ folder.
The default web admin endpoint port is 26000 and can be hit using a browser pointing to http://or:26000 in Chrome.
The default internal iVentoy webserver for serving images is 16000 this is configurable in the admin interface documented here https://iventoy.com/en/doc_http_url.html, if changing ensure you forward the correct port number
Port 10809 is Linux Network Block Device - I'm not quite sure what iVentoy uses it for, I'm going to assume to mount EFI or ISO's.
- 69/69 UDP = TFTP Port
- 26000/26000 TCP = iVentoy Web GUI Interface
- 16000/16000 TCP = iVentoy iso & file server
- 10809/10809 TCP = Block Device
There are a couple of volumes you can mount, the primary is the iso
folder, which surprisingly containts your iso images you want to boot.
docker run -d --privileged -p 69:69 -p 26000:26000 -p 16000:16000 -p 10809:10809 -v /path/to/iso:/iventoy/iso garybowers/iventoy:latest
Another oddity with iVentoy it looks for a /iventoy/data/iventoy.dat file and if that doesn't exist on boot it will fail to load, this causes a issue wanting to persist the /iventoy/data folder.
- Run iVentoy without the data volume mapped
docker run -d --privileged -p 69:69 -p 26000:26000 -p 16000:16000 -p 10809:10809 -v /path/to/isos:/iventoy/iso --name iventoy-tmp garybowers/iventoy:latest
copy the contents of the data folder to your persistent storage
sudo docker cp iventoy-tmp:/iventoy/data/iventoy.dat /my/local/storage/iventoy/data/
sudo docker cp iventoy-tmp:/iventoy/data/config.dat /my/local/storage/iventoy/data/ <---[Might not exist, skip if not]
sudo docker cp iventoy-tmp:/iventoy/data/mac.db /my/local/storage/iventoy/data/
delete the temporary container
docker rm iventoy-tmp --force
Run iVentoy with the volume for data mounted.
docker run -d --privileged -p 69:69 -p 26000:26000 -p 16000:16000 -p 10809:10809 -v /path/to/isos:/iventoy/iso -v /path/to/data:/iventoy/data --name iventoy garybowers/iventoy:latest
Alternatively run on host mode to serve PXE to docker host's LAN:
docker run -d --privileged --net=host -v /path/to/isos:/iventoy/iso -v /path/to/data:/iventoy/data --name iventoy garybowers/iventoy:latest
See the docs folder for examples.
Once your container is up and running go to the IP address of your server on port 26000 e.g. http://10.0.0.1:26000
-
Ensure the Server IP is selected correctly, on my docker setup I have a dedicated network with it's own IP for this service.
-
On the configuration menu on the left, If you are using a external DHCP server then ensure the
DHCP Server Mode
is set toExternal
-
Copy a ISO file to your isos folder (locally as set by the volumes above) and goito the
Image Management
menu on the left and hit refresh. -
Start the server by hitting the bit play button on the
Boot Information
menu screen