请输入图片描述
为啥有那么奇葩的需求呢?
因为某些众所周知的原因,加上消费降级(硬盘和内存越来越贵)的缘故,宿舍的AllInBoom准备寄回家里冷冻存放.但是某些自己私有的文件是要随时能访问到的,丢公共网盘又有点不放心,于是乎在寻找替代方案的时候,忽然发现之前和朋友合租的那台HKT传家宝竟然支持二次虚拟化,于是乎就有了这篇文章


首先如何看vps是否支持二次虚拟化, 直接执行 cat /proc/cpuinfo | grep svmcat /sys/module/kvm_intel/parameters/nested 如果第一句命令输出有svm,第二句命令输出是Y,那说明有戏


然后开始写docker模板,5666和22是飞牛的管理端口和ssh端口,要开放其他的话自己加(8006是虚拟机vnc的端口,安装系统要用到,必须要),因为vps的资源有点紧张,我分了最小的资源给飞牛用,iso是飞牛的安装盘地址,直接在官网下载就好,/data/fn/storage是放虚拟化文件的目录,系统分区正常25G足够

version: "3.8"
services:
  fn-docker:
    image: qemux/qemu
    container_name: fn-docker
    privileged: true
    restart: always

    devices:
      - /dev/kvm
      - /dev/net/tun

    cap_add:
      - NET_ADMIN

    ports:
      - 5666:5666
      - 8007:8006
      - 8022:22

    environment:
      RAM_SIZE: "1536M"
      CPU_CORES: "2"
      DISK_SIZE: "25G"
      DEBUG: "N"
      BOOT: "uefi"
      VNC: "Y"
      DISK_INTERFACE: "sata"
    volumes:
      - /data/fn/storage:/storage
      - /data/fn/ovmf:/var/lib/ovmf
      - /home/fnos.iso:/boot.iso

    stop_grace_period: 2m

然后提前开放好端口,保存编排模板,然后docker compose up -d,等镜像自动拉完开机.
开机完后用浏览器访问8007端口,这是虚拟机的vnc界面,启动后,选择第二项,回车
请输入图片描述
然后选择硬盘,可以看到我们挂载的25G系统盘
请输入图片描述
然后确认,等它自己安装完(这里要一点点时间的,而且看不到进度条,不是卡死,不要做任何操作,不急不燥,坐和放宽)
看到这个界面之后,回车ok
请输入图片描述
请输入图片描述
然后看到这句英文之后,执行docker compose down关机,开始挂载数据盘
1.在 DISK_SIZE: "25G" 的下面增加一句 DISK2_SIZE: "250G"
2.在 - /data/fn/storage:/storage 的下面增加一句 - /data/fn/storage2:/storage2
3.注释或者删掉- /data/iso/fnos.iso:/boot.iso:ro这一句,免得重启完后又进光盘安装模式了.
然后保存,执行docker compose up -d,不出意外的话,你将看到熟悉的飞牛启动界面
看到登录信息之后,说明系统安装这一步已经完成了
请输入图片描述
然后去宿主机的防火墙或者安全组禁用掉8007这个端口的外网访问,我们已经不用了.
然后在浏览器打开https://你vps的外网ip:5666/ (注意,不是你刚才在vnc看到的172开头的那个容器的ip),你就可以看到熟悉的飞牛安装界面了.
请输入图片描述
进入系统后,你可以看到两块硬盘挂载正常
请输入图片描述
然后打开一下ssh,用容器的IP+8022端口登录,登录也一切正常,测试下scp拷贝文件,也正常.
至此,飞牛docker化安装结束,这个飞牛系统和真机安装是一样的,除了里面的虚拟机用不了(毕竟虚拟化出来的系统),其他都正常.