docker compose配置PXE服务器通过网络安装操作系统

我的操作系统iso镜像都存放在windows共享上,所以这里先创建对应的挂载目录并执行挂载操作:

windows共享路径:\\HWT-SERVER-MINI\share_data

iso镜像位于其下的software\os目录中。

挂载windows共享

安装cifs-utils包,用于挂载smb共享:

bash 复制代码
sudo apt update && sudo apt install cifs-utils

创建用于挂载的目录:

复制代码
sudo mkdir -p /mnt/winshare

编辑/etc/fstab文件以便重启后自动挂载

复制代码
sudo nano /etc/fstab

在行尾添加以下内容并保存,记得修改对应的用户名和密码

bash 复制代码
//hwt-server-mini/share_data /mnt/winshare cifs username=share,password=123456@a,uid=1000,gid=1000 0 0

应用挂载设置

bash 复制代码
sudo mount -a

备注:如果该命令执行报错:mount: /mnt/winshare: mount(2) system call failed: No route to host.可能是没有安装cifs包,参考前面的命令即可

检查是否挂载成功(看看是否有列出iso镜像)

bash 复制代码
ls /mnt/winshare/software/os

配置docker容器

我这里使用的pxe服务器为iventoy,其docker镜像地址为:ziggyds/iventoy - Docker Image | Docker Hub

创建用于保存iventoy配置信息的目录:

bash 复制代码
sudo mkdir -p /data/iventoy/config

新建~/iventoy目录,并在其下创建docker-compose.yaml文件:

bash 复制代码
mkdir -p ~/iventoy && touch ~/iventoy/docker-compose.yaml

编辑该yaml文件

bash 复制代码
cd ~/iventoy && nano docker-compose.yaml

输入以下内容并保存退出

bash 复制代码
version: '3.9'
services:
  iventoy:
    image: ziggyds/iventoy:1.0.21
    container_name: iventoy
    restart: always
    privileged: true #must be true
    volumes:
      - /mnt/winshare/software/os:/app/iso
      - iventoy_config:/app/data
    network_mode: host
    environment:
      - AUTO_START_PXE=true # optional, true by default

volumes:
  iventoy_config:

上述中,/mnt/winshare/software/os为iso镜像存放的目录。

注意:/app/data不要绑定到主机目录,否则可以会因为该目录空的问题,导致无法正常访问网页:http://your_host_ip:26000,所以这里以卷的方式来挂载

创建并启动容器

bash 复制代码
sudo docker compose up -d

启动pxe服务

在浏览器中输入http://192.168.70.170:26000,这里的ip地址部分是docker服务所在主机的ip,请作相应修改。

点击运行即可,如下图所示:

注:如果iso镜像目录没有任何镜像文件的话,运行可能不成功。

安装系统

这里以hyper-v虚拟机为例,创建一个新的虚拟机,然后以网络方式启动即可,如下图所示:

正常检测到镜像列表,如下图所示:

系统正常安装,如下图所示:

其他关于dhcp配置的等略过,参数iventoy的官方文档即可

备记

该方式下windows 24h2同时关闭安全启动和禁用TPM模块也能安装成功,如下图所示:

相关推荐
IT瑞先生1 天前
docker-compose下快速部署实操——持续更新...
运维·docker·容器
爱码少年1 天前
Docker遍历镜像生成导出镜像命令六法
docker·shell
OpenAnolis小助手1 天前
Anolis OS 23.5 发布:全新平台支持、DDE 桌面升级,安全与多架构能力再度跃升
安全·操作系统·龙蜥社区·anolis os·anolis os 23.5
BullSmall1 天前
Sonarqube9.9 docker 镜像启动后 conf 下的配置文件没有了
docker·容器·eureka
ruofu331 天前
wsl端是py312,但是项目是py311, 如何下载py311的依赖包(wheels)
python·docker
spider_xcxc2 天前
Docker 实战:容器化多服务应用,Dockerfile 与 Compose 配置全解析
docker·云原生·eureka·虚拟化·容器化
晚风吹长发2 天前
Docker使用——Docker容器及相关命令
linux·运维·服务器·docker·容器·架构
ShiXZ2132 天前
Docker Compose 安装与配置指南
运维·docker·容器
BullSmall2 天前
Anolis OS 8.10 Docker 部署 SonarQube 9.9 完整教程
运维·docker·容器
开发者联盟league2 天前
vscode 进入docker容器
vscode·docker