10

在飞牛私有云fnOS公测版中使用docker跑PVE虚拟机

发表于:2024-9-20 14:27:41 虚拟机 1597
本帖最后由 陪玩 于 2024-9-20 17:13 编辑

前言

不构成任何投资建议,也不作为任何法律法规、监管政策的依据,不构成任何形式的医疗建议
操作有风险,数据需备份


当前版本的fnOS没有提供虚拟机功能
我这种人是离开虚拟机一天就浑身难受的存在
因此在fnOS中部署个虚拟机自然就是顺理成章的事情

如果进行过大的修改,污染了宿主机环境可能会影响稳定性
折中来看docker是一个比较好的隔离方案

由于我用习惯了Proxmox VE不想用其他的,故此部署个dockerPVE也是合理的
在之前的文章也提及了一下,但未详细说明部署的方式

这个dockerPVE在群辉里头是个**肋,但到了fnOS似乎就有改善了
在群晖中使用docker跑ProxmoxVE
毕竟群辉那个配置跑啥都卡



准备
  • 检查kvm支持
确定一下你的环境是支持kvm的

这个你要自己检查,至于用cat /proc/cpuinfo | egrep 'vmx|svm'
还是什么别的方法,就看你自己了

  • 准备好docker并初始化
安装并初始化好fnOS的docker
这个部分没什么好说的,图形化界面一步步来就是

修改网络配置
如虚拟机无需网络支持可以不进行本节配置
如可接受使用qemu args添加网络也无需按本节进行配置

  • 已知问题
按本节操作配置后,在fnOS系统页面不能正常展示网络信息


  • 获取主网络接口名称与mac地址
首先获取一下你网口的mac地址
先看看你的管理口叫什么


我这里如图所示是ens33
执行命令
  1. ip a
复制代码

命令执行的回显如下所示

  1. username@fnos:/$ ip a
  2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  3.     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  4.     inet 127.0.0.1/8 scope host lo
  5.        valid_lft forever preferred_lft forever
  6.     inet6 ::1/128 scope host noprefixroute
  7.        valid_lft forever preferred_lft forever
  8. 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
  9.     link/ether 00:0c:29:08:af:47 brd ff:ff:ff:ff:ff:ff
  10.     inet 192.168.230.128/24 brd 192.168.230.255 scope global dynamic noprefixroute ens33
  11.        valid_lft 77093sec preferred_lft 77093sec
  12. 可得ens33接口的mac是00:0c:29:08:af:47
复制代码


  • 安装ifupdown2

直接一个命令,没什么好说的

  1. apt install ifupdown2 bridge-utils
复制代码


  • 配置/etc/network/interfaces
使用vim或者是nano什么的,把/etc/network/interfaces改改
其中的00:0c:29:08:af:47是我刚刚获得ens33的mac地址时记录的
ens33是刚刚获知的主要网口名称

  1. # interfaces(5) file used by ifup(8) and ifdown(8)
  2. auto lo
  3. iface lo inet loopback

  4. auto ens33
  5. iface ens33 inet manual

  6. auto vmbr0
  7. iface vmbr0 inet dhcp
  8.         bridge-ports ens33
  9.     hwaddress ether 00:0c:29:08:af:47
  10.         bridge-stp off
  11.         bridge-fd 0
复制代码

随后运行ifreload -a再运行reboot重启系统



重启后一般就会是这样
vmbr0就是我们刚刚创建的桥
记住画面中的这个IP:192.168.230.128

如果不复用mac地址会造成dhcp获取的IP变更
如图所示,复用mac地址后,获得的IP与之前ens33获得的IP一致



运行docker PVE
  • 创建必要目录
如图所示,创建一个PVE文件夹
并复制原始路径


这里的例子是/vol1/1000/pve

  • 运行docker PVE
如下命令根据实际情况替换
192.168.230.128替换为你vmbr0获得的IP
/vol1/1000/pve替换为你创建PVE文件夹后复制的原始路径

  1. docker run -idt --network host --privileged --name pve --add-host pve:192.168.230.128 --hostname pve --device /dev/kvm -v /etc/network/interfaces:/etc/network/interfaces -v /vol1/1000/pve:/var/lib/vz  makedie/proxmox_ve:8.2.4
复制代码

  • 创建vmbr0配置
这一节是创建vmbr0配置
实际上也只是创建配置罢了



如上图所示,创建一个vmbr配置
但不需要点击那个Apply Configuration

访问docker PVE
本例地址为https://192.168.230.128:8006/
打开后输入用户名root,密码root后即进入PVE后台



  • 注意事项
由于fnOS的内核未启用iommu,故目前直通功能无法使用



有需要的用户可以自己试试开了搞搞,我是没有这个方面的需求

上传镜像
由于已经映**/var/lib/vz目录



因此直接将镜像上传至fnOS的web端文件管理中即可



创建虚拟机
按PVE正常创建虚拟机流程创建即可

其中初次安装系统时网卡推荐使用E1000以获得最佳兼容性



本次案例使用一个winPE作为演示,正常系统也是可以用的



虚拟机验证

按PVE正常流程启动创建的虚拟机即可

  • 外部网络验通


如图所示,外部网络正常访问

  • 本地回环网络验通


如图所示,虚拟机内访问宿主机nas页面正常

结束语
终究还是PVE扛下了所有
所以fnOS官方虚拟机功能什么时候出来

收藏
送赞 10
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

发表回复

评论列表(8)

感谢分享,已加精
2024-9-21 20:28:42 回复
6666666666
2024-9-20 16:25:13 回复
前来 学习围观
2024-9-20 23:21:25 回复
支持支持
2024-9-21 06:31:33 回复
不知名网友  发表于 2024-9-21 14:15:31
66666666666
2024-9-21 14:15:31 回复
感谢分享,马上去试试
2024-10-1 18:47:33 回复
docker还能部署PVE,我一直以为是PVE部署docker
前天 12:55 回复
我是PVE部署群晖和飞牛OS
17 小时前 回复
陪玩

TA还没有介绍自己~

2

主题

2

回帖

8

积分

江湖小虾

积分
8
话题