ferrarimarco / docker-pxe Goto Github PK
View Code? Open in Web Editor NEWA virtualized implementation of PXE supported by DNSMasq
License: MIT License
A virtualized implementation of PXE supported by DNSMasq
License: MIT License
Hi, very great container. but please just give it a sample to CentOS and Ubuntu whould be very nice :)
Hey! Im trying to use this image for booting my Optiplex micro, which to my information only supports UEFI Grub. Is it possible to configure this image to work with UEFI?
Thanks :)
pxe_1 | 2023-01-27T16:58:08.309959639Z dnsmasq: started, version 2.86 DNS disabled
pxe_1 | 2023-01-27T16:58:08.309994133Z dnsmasq: compile time options: IPv6 GNU-getopt no-DBus no-UBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-cryptohash no-DNSSEC loop-detect inotify dumpfile
pxe_1 | 2023-01-27T16:58:08.311564902Z dnsmasq-dhcp: DHCP, proxy on subnet 192.168.3.58
pxe_1 | 2023-01-27T16:58:08.311587771Z dnsmasq-tftp: TFTP root is /var/lib/tftpboot
pxe_1 | 2023-01-27T17:01:21.202116590Z dnsmasq-dhcp: 2082939515 available DHCP subnet: 192.168.3.58/255.255.255.0
pxe_1 | 2023-01-27T17:01:21.202191907Z dnsmasq-dhcp: 2082939515 vendor class: PXEClient:Arch:00000:UNDI:002001
pxe_1 | 2023-01-27T17:01:21.202220522Z dnsmasq-dhcp: 2082939515 user class: iPXE
pxe_1 | 2023-01-27T17:01:21.202242758Z dnsmasq-dhcp: 2082939515 PXE(eth0) 08:00:27:c2:77:22 proxy
pxe_1 | 2023-01-27T17:01:21.202306474Z dnsmasq-dhcp: 2082939515 tags: eth0
pxe_1 | 2023-01-27T17:01:21.202335130Z dnsmasq-dhcp: 2082939515 bootfile name: pxelinux.0
pxe_1 | 2023-01-27T17:01:21.202358398Z dnsmasq-dhcp: 2082939515 broadcast response
pxe_1 | 2023-01-27T17:01:21.202380048Z dnsmasq-dhcp: 2082939515 sent size: 1 option: 53 message-type 2
pxe_1 | 2023-01-27T17:01:21.202401136Z dnsmasq-dhcp: 2082939515 sent size: 4 option: 54 server-identifier 192.168.3.58
pxe_1 | 2023-01-27T17:01:21.202422024Z dnsmasq-dhcp: 2082939515 sent size: 9 option: 60 vendor-class 50:58:45:43:6c:69:65:6e:74
pxe_1 | 2023-01-27T17:01:21.203156455Z dnsmasq-dhcp: 2082939515 sent size: 17 option: 97 client-machine-id 00:c9:8b:f8:81:71:72:46:e9:a3:5a:75:d2:1f...
pxe_1 | 2023-01-27T17:01:21.203181864Z dnsmasq-dhcp: 2082939515 sent size: 36 option: 43 vendor-encap 06:01:03:0a:04:00:50:58:45:08:07:80:00:01...
pxe_1 | 2023-01-27T17:01:22.373531885Z dnsmasq-dhcp: 2082939515 available DHCP subnet: 192.168.3.58/255.255.255.0
pxe_1 | 2023-01-27T17:01:22.373581647Z dnsmasq-dhcp: 2082939515 vendor class: PXEClient:Arch:00000:UNDI:002001
pxe_1 | 2023-01-27T17:01:22.373601310Z dnsmasq-dhcp: 2082939515 user class: iPXE
pxe_1 | 2023-01-27T17:01:22.373617317Z dnsmasq-dhcp: 2082939515 PXE(eth0) 08:00:27:c2:77:22 proxy
loop
pxe_1 | 2023-01-27T17:01:22.373636031Z dnsmasq-dhcp: 2082939515 tags: eth0
pxe_1 | 2023-01-27T17:01:22.373651337Z dnsmasq-dhcp: 2082939515 bootfile name: pxelinux.0
pxe_1 | 2023-01-27T17:01:22.373663951Z dnsmasq-dhcp: 2082939515 broadcast response
pxe_1 | 2023-01-27T17:01:22.373677877Z dnsmasq-dhcp: 2082939515 sent size: 1 option: 53 message-type 2
pxe_1 | 2023-01-27T17:01:22.373693361Z dnsmasq-dhcp: 2082939515 sent size: 4 option: 54 server-identifier 192.168.3.58
pxe_1 | 2023-01-27T17:01:22.373708107Z dnsmasq-dhcp: 2082939515 sent size: 9 option: 60 vendor-class 50:58:45:43:6c:69:65:6e:74
pxe_1 | 2023-01-27T17:01:22.373718937Z dnsmasq-dhcp: 2082939515 sent size: 17 option: 97 client-machine-id 00:c9:8b:f8:81:71:72:46:e9:a3:5a:75:d2:1f...
pxe_1 | 2023-01-27T17:01:22.373756297Z dnsmasq-dhcp: 2082939515 sent size: 36 option: 43 vendor-encap 06:01:03:0a:04:00:50:58:45:08:07:80:00:01...
pxe_1 | 2023-01-27T17:01:24.250297098Z dnsmasq-dhcp: 2082939515 available DHCP subnet: 192.168.3.58/255.255.255.0
pxe_1 | 2023-01-27T17:01:24.250356858Z dnsmasq-dhcp: 2082939515 vendor class: PXEClient:Arch:00000:UNDI:002001
pxe_1 | 2023-01-27T17:01:24.250373937Z dnsmasq-dhcp: 2082939515 user class: iPXE
pxe_1 | 2023-01-27T17:01:24.250386683Z dnsmasq-dhcp: 2082939515 PXE(eth0) 08:00:27:c2:77:22 proxy
pxe_1 | 2023-01-27T17:01:24.250399303Z dnsmasq-dhcp: 2082939515 tags: eth0
pxe_1 | 2023-01-27T17:01:24.250410589Z dnsmasq-dhcp: 2082939515 bootfile name: pxelinux.0
pxe_1 | 2023-01-27T17:01:24.250430821Z dnsmasq-dhcp: 2082939515 broadcast response
pxe_1 | 2023-01-27T17:01:24.250443657Z dnsmasq-dhcp: 2082939515 sent size: 1 option: 53 message-type 2
pxe_1 | 2023-01-27T17:01:24.250455747Z dnsmasq-dhcp: 2082939515 sent size: 4 option: 54 server-identifier 192.168.3.58
pxe_1 | 2023-01-27T17:01:24.250471331Z dnsmasq-dhcp: 2082939515 sent size: 9 option: 60 vendor-class 50:58:45:43:6c:69:65:6e:74
pxe_1 | 2023-01-27T17:01:24.250483794Z dnsmasq-dhcp: 2082939515 sent size: 17 option: 97 client-machine-id 00:c9:8b:f8:81:71:72:46:e9:a3:5a:75:d2:1f...
pxe_1 | 2023-01-27T17:01:24.250547939Z dnsmasq-dhcp: 2082939515 sent size: 36 option: 43 vendor-encap 06:01:03:0a:04:00:50:58:45:08:07:80:00:01...
pxe_1 | 2023-01-27T17:01:28.314538678Z dnsmasq-dhcp: 2082939515 available DHCP subnet: 192.168.3.58/255.255.255.0
pxe_1 | 2023-01-27T17:01:28.314684123Z dnsmasq-dhcp: 2082939515 vendor class: PXEClient:Arch:00000:UNDI:002001
pxe_1 | 2023-01-27T17:01:28.314707641Z dnsmasq-dhcp: 2082939515 user class: iPXE
pxe_1 | 2023-01-27T17:01:28.314724339Z dnsmasq-dhcp: 2082939515 PXE(eth0) 08:00:27:c2:77:22 proxy
version: '3.9'
services:
pxe:
network_mode: host
image: ferrarimarco/pxe
# stdin_open: true
cap_add:
- NET_ADMIN
- NET_RAW
command: --dhcp-range=192.168.3.58,proxy,255.255.255.0
#command: --dhcp-range=192.168.3.100,192.168.3.150,255.255.255.0
ps, it works if both of them are vir machines with bridge.
in that case, vir machine would found 3.43(which is the same as 3.58).
That option is too specific and sets too many defaults.
Remove it and let the user implement their boot options.
Is this a bug related to new docker-ce version?
Use alpine as a base to ease the building of ARM-based images.
Trying to run this and it stops at the following line -
dnsmasq-tftp: TFTP root is /var/lib/tftpboot
Also tried running it with this line -
docker run -it --rm --net=host ferrarimarco/pxe --dhcp-range=10.0.1.1,proxy
Are there other files/services I should have installed ?
New to docker and have been able to get other containers to run
Suggestions on how to troubleshoot this one ?
Thanks,
Ron
Since DNSMasq is light, it can easily run on archs typically used when developing embedded systems.
Architectures:
x86_64
armhf
Draft text for README:
All the configuration files can be modified at will. Just look at the Dockerfile to see where they are and overwrite them with your own (mounting volumes from the Docker host or rebuilding the image).
It was unclear from the documentation, how to assign 192.168.56.2
IP to the container that is serving as a pxe server.
Download syslinux directly from https://www.kernel.org/pub/linux/utils/boot/syslinux/
Hi I try for a while and find your image that do boot direct over lan and go to the memtest. This is nice and working.. but how to add a custom os ?
i run with : docker run --cap-add=NET_ADMIN -it --rm --net=host ferrarimarco/pxe --dhcp-range=192.168.48.8,192.168.48.14,255.255.255.240
For a menu:
LABEL Fatdog64
MENU LABEL Fatdog64 liveos
KERNEL /Fatdog64/casper/vmlinuz
APPEND initrd=Fatdog64/casper/initrd auto=true interface=eth0 ip=dhcp url=http://192.168.48.10/Fatdog64-812.iso
While with netboot.xyz i did download the live image: vmlinuz and initrd .. i'm not sure how to put it into your app. And as with an .iso file.. i see option like :
mkdir fatdog64
mount -o loop Fatdog64-812.iso fatdog64
But where did the mount need to be place and how to set into your soft. Was it to run the docker with -d and go into the running process and change a file.. Or set a -v option to tell where the 'assets' or iso are present ..
Thanks in advance
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.