软件工具 · 2024年9月5日 0

Windows也能轻松玩转Docker?Hyper-V虚拟机安装iStoreOS保姆级手把手教程

之前写了一篇关于如何使用Windows打造NAS系统的教程,获得了非常热烈的反响,也已经有很多小伙伴通过这种方式正在愉快的使用。

最近可能是随着大家对NAS更加深入的了解,我也收到了很多相关建议和问题,其中最多的就是“如何在Windows系统中使用docker?”那今天就来为大家解决一下这个难题,让所有正在使用Win-NAS方案的小伙伴也能轻松,愉快的使用Docker。

为什么是iStoreOS

虽然Windows平台上有官方的Docker for Windows,不过这个东西对于新手来说非常不友好,不仅安装麻烦,用起来也是困难重重,体验感非常差劲,系统资源占用也很高。

不过幸好我们还有一个更佳的选择,就是利用Windows系统自带的Hyper-V虚拟机安装iStoreOS系统,然后利用iStoreOS系统内置的docker平台,来部署任意容器应用。

iStoreOS是一款基于OpenWRT打造的开源系统,被很多人作为软路由系统的首选。而随着版本迭代,iStoreOS已经成为了一款集成了应用中心,虚拟机和Docker等众多功能的轻NAS系统,不仅功能强大,最重要的是非常容易上手,所有模块的设置都很简单。开句玩笑,说它是“全弱智化”操作也一点不为过。

目前网上也有一些其他博主做过利用Hyper-V安装iStoreOS的教程,但多数都不太完善。今天这篇文章,则是从头到尾的完整流程,几乎涵盖了所有细节及可能遇到的问题。只要按着顺序来,哪怕是新手,也能够轻松、快速完成搭建。

下面我们正式开始~

Step 0、工具准备

在正式开始安装之前,请大家先准备以下三样东西:

1、作为物理机的Windows电脑一台。

AMD或Intel的CPU都行,但必须支持虚拟化技术。操作系统最好是Win10/Win11专业版,本身已经内置了Hyper-V,只要在“启用或关闭Windows功能”中勾选一下即可。如果系统是家庭版,则需要另外自行安装Hyper-V,也不复杂,直接照着我下面的教程操作就行:

袋鼠叔叔:Windows10/11家庭版开启Hyper-V虚拟机功能详解——保姆教程及闭坑指南

2、Starwind V2V Converter软件。

自行官网下载免费版即可。目的是将iStore的镜像转换为Hyper-V专用的.vhd格式。

https://www.starwindsoftware.com/tmplink/starwindconverter.exe

3、iStoreOS安装镜像。

自行官网下载免费版即可。进入下载页面后,选择x86_64_efi版本,然后下载以.img.gz结尾的镜像文件:

https://fw.koolcenter.com/iStoreOS/

这里有一点需要特别注意。根据我个人测试,个别版本的镜像在使用Hyper-V虚拟机安装后,会出现无法连接网络的情况。所以我建议大家和我一样,先使用2023-11-24版本进行安装,如果想升级最新版本,通过iStoreOS系统内置的升级按钮进行更新,会比较安全。

Step 1、将iStoreOS原始镜像转换为Hyper-V可用的VHD镜像

首先,我们需要利用StarWind V2V Converter,将下载的iStoreOS镜像转换为Hyper-V可用的VHD格式。

找到前面下载的以img.gz结尾的iStoreOS镜像,右键单击,在弹出菜单中选择“全部解压缩”,将其解压。

解压后,得到.img结尾的镜像文件备用。这个文件体积比较大,有2.4G左右。

打开StarWind V2V Converter,选择Local File后点击Next:

点击File Name最右侧的三个点,选择刚刚解压的.img文件, 然后Next:

接下来转换后文件的储存位置,还是选择Local file:

在目标文件格式页面,选择VHD/VHDX:

接着选择VHD Growable Image:

为转换后的文件选择一个储存位置,并点击convert(转换):

十秒钟左右就转换完成了,点击finish。

Step 2、为Hyper-V设置虚拟网络

Hyper-V本身是一个虚拟机平台,所以我们需要单独设置一个虚拟网卡供其使用,使虚拟机和物理机获得平等的网络连接。这一步非常重要,否则后期可能造成iStoreOS中的许多应用无法通过网络访问。

Hyper-V的虚拟网卡设置非常简单。首先在电脑任务栏搜索框中输入hyper,找到自动跳出的Hyper-V管理器:

单击启动,就来到Hyper-V主界面了。点击右操作菜单中的“虚拟交换机管理器”:

依次点击“新建虚拟网络交换机”——“外部”——“创建虚拟交换机”

为虚拟交换机起个名字,连接类型选择“外部网络”,然后注意在下拉框中选择网卡。有些电脑(比如我这台)有多块网卡,物理机用哪块网卡上网就选择哪块,这里要特别注意,一定要分清楚。

提示操作会导致网络出现短暂中端,不用管他,点是:

回到虚拟交换机管理器设置页面,可以看到网卡已创建成功。

Step 3、安装iStoreOS

再次打开Hyper-V,点击右侧操作菜单中的“新建”——“虚拟机”。

直接下一步。

按自己喜好为新的虚拟机起一个名字,我这里就叫istoreos好了。默认的储存位置是在C盘,但我强烈建议大家另外选择一个比较大的空间,避免后期虚拟机空间过大把C盘撑满。

虚拟机代数选择“第一代”。

内存分配这里,看自己的需求。因为以后我们可能要在istoreos中安装一些docker容器,所以建议至少4096mb以上吧,看自己Windows物理机的内存。我这台电脑是32G的,所以分个8G给istoreos,确保两边都足够:

在配置网络这里,一定要选择之前我们创建的iStoreOS专用虚拟交换机。

选择“使用现有虚拟硬盘”,然后选中之前我们用StarWind转换出来的.VHD镜像。

看一下前面所有的设置无误,点击完成。

现在在Hyper-V的虚拟机列表中,可以看到istoreOS已经出现了,但状态为关机。

右键单击istoreos条目,然后启动。

现在istoreos就启动了,状态变为正在运行,CPU和内存使用率也正常显示。接下来双击最下方的黑色命令框。

打开命令行后,istoreos会跑一段代码,大概1分钟左右就好了。如果一切正常,底部会出现“istoreOS is ready”字样,这时按下回车键激活:

按下回车键后,可以看到iStoreOS就正式激活了,出现了彩色(蓝色)图标,说明一切OK:

Step 4、iStoreOS首次使用设置

相信大家都很清楚,iStoreOS实际上就是基于OpenWRT的魔改版本。因此本质上还是类似于一个路由器系统(不过很多国产成品NAS的系统也是OpenWRT魔改),所以在首次使用时,我们必须对其进行一些设置,确保iStoreOS 能够正常运行,并且不会对现有家庭网络造成影响。这一步极其重要,请一定严格按顺序进行。

首先,iStoreOS默认的网段是192.168.100.X,和我们家里的路由器并不在同一网段,所以要按照家里路由器的网段来重新设置一下iStoreOS的网段。比如我家的小米路由器是192.168.31.X,新华三路由器是192.168.124.X,你家里路由器网段是什么,后面就把iStoreOS的网段改成相应的。方法如下:

在命令提示符界面,输入以下命令:

vi /etc/config/network

在跳出的网络设置界面中,只需要修改一个地方,就是“config interface lan”中的option ipaddr后面的ip地址。前面两位192.168不用去管他,第三位修改成路由器的网段地址,第四位修改成没有被其他设备占用的数字,避免冲突(可以在路由器管理页面查询)。

我这里将其设置为192.168.31.99。设置的时候,可以用键盘光标移动到要修改的位置,然后按下字母i键,使用del键进行删除。

修改完毕后,按一下键盘左上角的ESC键,然后在左下角的光标处输入:wq并回车保存退出。

保存退出后,可以再运行一次前面的网络设置命令,确认已经修改成功,关闭命令行窗口即可。

退出命令行窗口后,需要重启一下虚拟机,才能使上面设置的网络生效。还是在虚拟机列表页面右键单击istoreos,然后关机,再开机即可。

现在打开电脑浏览器,并输入iStoreOS的ip地址,就可以进入系统了。首次登录的默认用户名是root,密码是password。

输入后点击登录,直接进入系统,这就是iStoreOS的主页面。

进入系统后,我们第一件需要做的事情就是将iStoreOS本身的DHCP服务关掉,避免和家里的主路由器DHCP(内网IP地址自动分配)起冲突。记住,在同一个局域网内,不能同时出现两个有DHCP功能的设备!

点击左侧菜单的“网络向导”,然后选择“配置为旁路由”:

点击手动配置。

在IP地址中,填入我们之前为iStoreOS配置的IP地址192.168.31.99,子网掩码255.255.255.0,网关地址填入主路由器的管理IP,DNS服务器默认。这里一定要注意,必须将“提供DHCPv4服务”关闭。全部设置好后点击保存配置。

接下来点击左侧“网络”下面的网络诊断,在IPv4ping中输入任意常见网址,ping一下。如果能ping通,说明我们的iStoreOS可以正常联网,没有问题了:

到这里为止,其实iStoreOS的网络设置部分已经完成了。那很多小伙伴说我想SSH连接行不行?当然!如果需要在局域网内的其他主机上SSH连接的话,我们直接在“系统”——“管理权”——“SSH访问”页面指定一下接口:

后面我们从局域网其他主机,直接用powershell或者putty之类,SSH过来即可:

Step 5、为iStoreOS的Docker扩容及挂载磁盘到Windows

默认情况下,iStoreOS的docker储存在根目录中,只有1.8G容量。对于轻度用户,如果只装少数轻量级的容器应用,也勉强够用。但对docker重度用户,这点空间实在不够看(连Home Assistant都无法安装),这种情况下我们需要划出来一块更大的空间,单独给docker使用。

转到Hype-V虚拟机列表页面,先将iStoreOS关机。在确保关机后,点击右侧操作栏中的“编辑磁盘”。

直接下一步。

通过浏览按钮,选中iStoreOS的.vhd虚拟硬盘文件,然后下一步。

选中扩展,下一步。

自己按需求填入想要扩展的空间。比如我想要128GB,就填128,一般来说够用了。当然如果更大也可以,最高支持2T。

确认无误后,完成。

现在将iStoreOS启动并进入系统——磁盘管理,可以看到整个虚拟机的空间已经变成128GB了,除了系统占用之外,还多出了125.62GB的未分配空间,可以用作docker容器安装。接下来我们需要把这125.62GB的新磁盘挂载到系统中,才能够正常识别并使用。

找到iStoreOS首页磁盘信息最右侧的三个圆点符号,点击。

在弹出的分区信息页面,可以看到刚刚新扩展的125.6G空间尚未分区,点击后面的“分区并格式化”。

再次回到iStoreOS主页,找到Docker状态面板,点击右上角的“快速配置”。

在Docker迁移向导页面的“迁移到”下拉框中,选择刚刚我们新分区的磁盘,也就是/mnt/-4/docker,然后确定。

迁移成功!确定!

现在回到首页docker状态面板,可以看到根目录已经转移成功,并且空间也有116.79GB可用。

在为docker分配了足够空间之后,还需要把目录给挂载到物理机或局域网中的Windows系统,才能方便以后直接对容器应用中的配置文件进行修改及更新,最方便的做法就是通过SAMBA协议。

再次回到iStoreOS首页,找到“储存服务”面板,点击SAMBA图标,然后点击“快速配置”。

下拉框中选择“局域网文件共享(Samba)”,并点击下一步。

点击Msft Virtual Disk图标,展开挂载硬盘,并选择最后一个/mnt/-4,下一步。

目标分区默认,格式化选项选择“不格式化,使用原文件系统”,下一步。

SAMBA共享配置页面,按个人喜好填入共享名,用户名root,密码password(如果自己修改过,就填修改后的),创建。

再次回到首页的储存服务状态,看到SAMBA服务已启用,并且地址也出来了。

回到物理机或局域网内任意一台Windows主机,打开此电脑——映射网络驱动器。

随便选一个喜欢的驱动器盘符,然后输入\\+iStoreOS的IP地址,完成。

输入iStoreOS系统的账号密码:

挂载成功!实测写入和读取都没有任何问题。

Step 6、iStoreOS Docker实战指南

刚开篇的时候我们就说过,iStoreOS的docker是非常易用的。其最大特点就是在“iStore”中,已经为用户默认了很多常用的容器应用,比如Home Assistant,Jellyfin,Emby,Lucky,Alist,迅雷等等等等。对于以前完全没用过docker的新手小白来说,大大简化了部署的难度。

对docker老鸟来说,当然也可以通过图形化界面或者命令行进行容器部署,没有问题。

安装Home Assistant

docker pull homeassistant/home-assistant

运行Home Assistant

docker run -d --name homeassistant --restart always --net=host -p 8123:8123 -v /mnt/-4/docker/homeassistant/config:/config -e TZ=Asia/Shanghai -e PUID=0 -e PGID=0 homeassistant/home-assistant

一切ok,没有任何问题

安装并运行TVbox-Xiaoya:

bash -c "$(curl -fsSL https://d.har01d.cn/update_xiaoya.sh)"

没问题,TVbox客户端完美播放:

一些小Tips & 总结:

关于性能

有些小伙伴担心虚拟机系统资源占用和性能问题,其实我觉得这个是多余的,Hyper-V作为微软原生虚拟机,占用资源很少。我这个10年前的4代i5 4210H在安装完后,也没发现对物理机性能有明显影响,所以放心用就是了。处理器性能高的,多分几个核心给虚拟机也可以。

虚拟系统自动启动

只要在Hyper-V中设置为,当物理机启动时“始终自动启动此虚拟机”即可。这样iStoreOS每次都会在Windows主机开机时,自动在后台启动并运行,完全无需人工干预。

手机端访问iStoreOS管理页面

可以通过官方的“路由狗”App,从手机端访问iStoreOS管理页面,也可以直接操作系统中的文件,但目前仅支持安卓端。

总体来说,iStoreOS是目前市面上非常简单易用,同时功能强大的“轻NAS”系统。对于用Windows做底层的用户来说,利用Hyper-V安装,可以成为非常好的功能补充,并且完全免费(这是最重要的),实用性很高。

————————————————————————————————————

收藏文章来自:

Windows也能轻松玩转Docker?Hyper-V虚拟机安装iStoreOS保姆级手把手教程 – 袋鼠叔叔的文章 – 知乎
https://zhuanlan.zhihu.com/p/674797952