如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/netbootxyz/docker-netbootxyz允许您轻松搭建本地netboot.xyz实例。该容器是基于node.js编写的轻量辅助应用,提供简单的Web界面用于实时编辑菜单、获取netboot.xyz的最新菜单版本,并能将Github上的可下载资产镜像到本地机器,以加快资产启动速度。
该工具适用于开发和测试自定义菜单变更。对于无光驱且无法从USB启动的机器,本地netboot服务器提供了一种安装操作系统的方式。如果您希望开始使用netboot.xyz但不想管理iPXE菜单,建议使用启动介质而非搭建容器。
容器基于Alpine Linux构建,包含以下组件:
容器内服务由http://supervisord.org/管理,支持ARM架构和x86-64架构主机运行。
注意:若您无需管理iPXE菜单,仅需使用netboot.xyz基础功能,建议直接使用官方启动介质而非容器。
该镜像需要现有DHCP服务器运行,容器本身不包含DHCP服务。需在DHCP配置中指定next-server和启动文件名,引导客户端访问容器的TFTP服务。DHCP服务器需配置静态IP。
Debian/Ubuntu系统安装Docker:
shellsudo apt install docker.io
从Github Container Registry拉取
shelldocker pull ***-ghcr.xuanyuan.run/netbootxyz/netbootxyz
从Docker Hub拉取
shelldocker pull docker.xuanyuan.run/netbootxyz/netbootxyz
使用docker-cli启动
shelldocker run -d \ --name=netbootxyz \ -e MENU_VERSION=2.0.76 `# 可选,指定菜单版本` \ -e NGINX_PORT=80 `# 可选,Nginx服务端口` \ -e WEB_APP_PORT=3000 `# 可选,Web应用端口` \ -p 3000:3000 `# Web配置界面端口,目标端口需与WEB_APP_PORT一致` \ -p 69:69/udp `# TFTP服务端口(UDP)` \ -p 8080:80 `# 可选,Nginx服务端口映射,目标需与NGINX_PORT一致` \ -v /local/path/to/config:/config `# 可选,配置文件持久化目录` \ -v /local/path/to/assets:/assets `# 可选,资产文件持久化目录` \ --restart unless-stopped \ ghcr.io/netbootxyz/netbootxyz
使用docker-cli更新镜像
shelldocker pull ***-ghcr.xuanyuan.run/netbootxyz/netbootxyz # 拉取最新镜像 docker stop netbootxyz # 停止现有容器 docker rm netbootxyz # 删除旧容器 docker run -d ... # 使用原参数启动新容器
若使用相同的挂载目录,配置将保留;如需重置,可删除挂载目录后重启容器。
使用docker-compose启动
shelldocker compose up -d netbootxyz
使用docker-compose更新镜像
shelldocker compose pull netbootxyz # 拉取最新镜像 docker compose up -d netbootxyz # 后台重启容器
http://localhost:3000访问(或自定义的WEB_APP_PORT端口)http://localhost:8080访问本地缓存的资产(或自定义的NGINX_PORT映射端口)如需从本地镜像拉取Live Images,需修改boot.cfg文件,将默认live_endpoint从https://github.com/netbootxyz修改为本地服务IP或域名,例如http://192.168.0.50:8080。配置后,资产下载将重定向到本地服务,通过"本地资产"菜单下载的文件会缓存到本地,提升后续启动速度。
| 参数 | 功能描述 |
|---|---|
-p 3000 | Web配置界面端口 |
-p 69/udp | TFTP服务端口(UDP协议) |
-p 80 | Nginx资产服务端口 |
| 环境变量 | 功能描述 |
|---|---|
WEB_APP_PORT=3000 | 指定Web配置界面监听端口 |
NGINX_PORT=80 | 指定Nginx服务监听端口 |
MENU_VERSION=2.0.76 | 指定netboot.xyz引导文件版本(未设置则自动拉取最新版) |
TFTPD_OPTS='--tftp-single-port' | TFTP服务器参数(示例:使TFTP通过端口69发送所有数据) |
| 参数 | 功能描述 |
|---|---|
-v /config | 存储引导菜单文件和Web应用配置(持久化目录) |
-v /assets | 存储netboot.xyz启动资产(持久化目录) |
容器依赖DHCP服务器引导客户端访问TFTP服务。需在现有DHCP服务器中配置next-server(TFTP服务器IP)和启动文件名,以下是常见DHCP服务器配置示例。
安装DHCP服务器
shellsudo apt install isc-dhcp-server
配置监听接口
编辑/etc/default/isc-dhcp-server,设置DHCP服务监听的网络接口:
shellINTERFACESv4="eth0" # 替换为实际网络接口
配置DHCP服务
编辑/etc/dhcp/dhcpd.conf,添加如下配置(根据实际网络调整):
shelloption arch code 93 = unsigned integer 16; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.34 192.168.0.254; # 调整为实际网段的IP范围 next-server 192.168.0.33; # 替换为容器所在主机的IP option subnet-mask 255.255.255.0; option routers 192.168.0.1; # 替换为网关IP option broadcast-address 192.168.0.255; option domain-name "mynetwork.lan"; # 可选,域名 option domain-name-servers 1.1.1.1; # 可选,DNS服务器 if exists user-class and ( option user-class = "iPXE" ) { filename "http://boot.netboot.xyz/menu.ipxe"; } elsif option arch = encode-int ( 16, 16 ) { filename "http://boot.netboot.xyz/ipxe/netboot.xyz.efi"; option vendor-class-identifier "HTTPClient"; } elsif option arch = 00:07 { filename "netboot.xyz.efi"; # UEFI客户端启动文件 } else { filename "netboot.xyz.kpxe"; # 传统BIOS客户端启动文件 } }
启动并设置开机自启
shellsudo systemctl start isc-dhcp-server # 启动服务 sudo systemctl enable isc-dhcp-server # 设置开机自启
容器内置以下启动文件,可在DHCP配置中指定为引导文件:
| 启动文件名 | 描述 |
|---|---|
netboot.xyz.kpxe | 传统BIOS启动镜像,使用内置iPXE网卡驱动 |
netboot.xyz-undionly.kpxe | 传统BIOS启动镜像(兼容性模式),解决部分网卡驱动问题 |
netboot.xyz.efi | UEFI启动镜像,使用内置UEFI网卡驱动 |
netboot.xyz-snp.efi | UEFI SNP模式镜像,尝试启动所有网络设备 |
netboot.xyz-snponly.efi | UEFI SNP模式镜像,仅从链式加载的设备启动 |
netboot.xyz-arm64.efi | ARM64架构UEFI启动镜像,使用内置网卡驱动 |
netboot.xyz-arm64-snp.efi | ARM64架构UEFI SNP模式镜像,尝试启动所有网络设备 |
netboot.xyz-arm64-snponly.efi | ARM64架构UEFI SNP模式镜像,仅从链式加载的设备启动 |
netboot.xyz-rpi4-snp.efi | 树莓派4专用UEFI SNP模式镜像,尝试启动所有网络设备 |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 netbootxyz/netbootxyz 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: