当前位置:首页 > 网站笔记 > 正文内容

Virtual DSM – 在 Docker 里安装黑群晖 DSM 7.2

2年前 (2023-06-11)网站笔记

Virtual DSM 是一个可以在 Docker 里安装黑群晖的项目,甚至可以在 DSM 中再安装一个 DSM,无限套娃。@Appinn

Virtual DSM - 在 Docker 里安装黑群晖 DSM 7.2 系统 1

首先需要明确一下,群晖本身就可以在其系统内虚拟一个 DSM,就在 Virtual Machine Manager 套件中,新建虚拟机,然后就可以看到:

Virtual DSM - 在 Docker 里安装黑群晖 DSM 7.2 系统 2

每台白群晖都可以创建一个 Synology Virtual DSM,再多就要购买授权了。

而这个 Virtual DSM 就不太一样,随便你创建,毕竟是黑的 😂

大概在去年这个时候,青小蛙折腾过:在大容量 VPS 上安装黑群晖。这台机器现在还在服役,但系统已经不敢动了,毕竟可能大概率如果坏了就装不回去了 🙈

Virtual DSM

Virtual DSM 就简单多了,在支持 KVM 虚拟化的系统上,只需要配置好 Docker,然后就能安装黑群晖了:

1
docker run -it --rm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 60 kroese/virtual-dsm:latest

青小蛙本来准备在虚拟机之中套娃,但发现不行。但是,在群晖中,安装成功了 😂

这是一台安装了 DSM 7.2 Beta 的群晖设备,使用新的容器管理器(原来的 Docker):

Virtual DSM - 在 Docker 里安装黑群晖 DSM 7.2 系统 3

注意端口不要像青小蛙这样想当然的用 6000,会启动失败的,用 6001 即可。

具体的 YAML 配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
version: "3"
services:
    dsm:
        container_name: dsm
        image: kroese/virtual-dsm:latest
        environment:
            DISK_SIZE: "16G"
        devices:
            - /dev/kvm
        cap_add:
            - NET_ADMIN                      
        ports:
            - 6001:5000
        volumes:
            - /volume1/docker/dsm:/storage
        restart: on-failure
        stop_grace_period: 1m

然后,不要和原来的群晖使用相同的域名,可能会有冲突,我的解决方案是一个用域名访问,一个用 IP 访问。

安装之后的系统也是最新的 DSM 7.2 Beta 系统。

Virtual DSM - 在 Docker 里安装黑群晖 DSM 7.2 系统 4

没有序列号,不支持登录群晖账号。但测试用用还是没问题的,如果想要正经使用,在机器本身强大的前提下,也不是不行,做好备份就好了。比如虚拟两个 DSM 互相备份(别在同一台机器上)。

有什么用?

青小蛙觉得,用来体验 DSM 系统是最好的用途了,在购买群晖设备前,其实非常多的用户是从黑群晖开始的。比如青小蛙就是从 ESXi 下折腾了大半年,然后入手了白群晖。比起各类虚拟系统,Docker 无疑更佳简介方便无痕快捷。



在Ubuntu系统中安装KVM虚拟化,可以按以下步骤操作:1. 检查CPU是否支持KVM虚拟化使用以下命令检查CPU是否支持硬件辅助的虚拟化:
bash
egrep -c 'vmx|svm' /proc/cpuinfo
如果返回值大于0,表示CPU支持虚拟化,可以安装KVM。2. 安装KVM相关包
bash
sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils
这将安装KVM虚拟化平台需要的各个组件,如QEMU、Libvirt等。3. 启动Libvirt服务
bash 
sudo systemctl start libvirtd
此步骤将启动虚拟化进程管理服务Libvirt。4. 将当前用户添加到Libvirt组
bash
sudo adduser $USER libvirt
这可赋予当前用户操作虚拟机的权限。5. 安装虚拟机工具(可选)可以安装OpenStack或者Virtual Machine Manager等图形虚拟机管理工具。它们可以使创建和管理虚拟机更为简便。安装OpenStack:
bash
sudo apt install openstack-nova-compute
安装Virtual Machine Manager:
bash
sudo apt install virt-manager
6. 重启计算机(可选)为使设置生效,可以选择重启计算机。7. 创建虚拟机可以使用virt-manager图形化界面或virsh等命令行工具创建KVM虚拟机。至此,Ubuntu系统已成功安装KVM虚拟化环境,可以开始使用KVM创建和管理虚拟机。如果您在安装和使用过程中遇到任何问题,欢迎在回复中提出。我会提供更详细的帮助


root@instance-20230609-2000:~# docker run -it --rm -p 5001:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 60 kroese/virtual-dsm:latest
docker: Error response from daemon: error gathering device information while adding custom device "/dev/kvm": not a device node.如何修复


这个错误表示Docker容器无法访问主机的/dev/kvm设备文件。该文件是KVM虚拟化使用的设备接口,Docker容器运行KVM虚拟机需要访问它。要修复这个错误,有两种方法:1. 将当前用户添加到kvm组,并重启Docker服务
bash
sudo usermod -aG kvm $USER 
sudo service docker restart
将当前用户添加到kvm组,可以赋予其访问/dev/kvm接口的权限。重启Docker服务后,用户启动的Docker容器就可以访问该接口了。2. 通过Docker的--privileged标志启动容器
bash 
docker run -it  --privileged -p 5001:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 60 -d --restart always kroese/virtual-dsm:latest
使用--privileged选项启动Docker容器,可以给予容器访问主机所有设备的权限,从而解决访问/dev/kvm接口的问题。但是,这个方法会给Docker容器过高的权限,可能带来一定的安全风险,所以更推荐第一种方法 - 将用户添加到kvm组。两种方法的原理都是:给予Docker容器访问/dev/kvm接口的适当权限,来解决它无法访问该接口的错误。除上述方法之外,您还可以检查以下几点:1. 主机是否开启了KVM虚拟化,并正确加载kvm内核模块?2. Docker镜像kroese/virtual-dsm:latest是否以正确方式要求访问/dev/kvm接口?如果该镜像本不需要访问该接口,可以修改Docker命令移除--device=/dev/kvm选项。3. /dev/kvm接口的文件权限是否正确,Docker的unix socket文件权限是否过于严格?如果是可以适当放宽权限。希望以上内容能帮助您解决Docker容器访问/dev/kvm接口的错误。如果您有任何其他问题,欢迎在回复中提出。我将提供更详细的帮助。 



扫描二维码推送至手机访问。

版权声明:本文由私人专用发布,如需转载请注明出处。

本文链接:http://zb.openface.cc/?id=51

分享给朋友:

“Virtual DSM – 在 Docker 里安装黑群晖 DSM 7.2” 的相关文章

青龙面板搭建教程

 loa123/青龙面板 (gitee.com)青龙面板安装搭建保姆级教程 - 哔哩哔哩 (bilibili.com)青龙面板全教程_真的懒啊的博客-CSDN博客 定时 最新提交阿里云盘每日签到基于 Node.js 实现的阿里云盘每日签到待办事项阿里云盘签到青龙面板支持...

VPS常用脚本合集(持续更新中)

系统篇查看Linux内核版本uname -r复制代码 查看本机绑定的IP地址ip a复制代码自动配置IPv6在ens3网卡上(网卡名字修改为自己的网卡)dhclient -6 ens3复制代码测鸡篇融合怪混合VPS测试脚本(10代目)curl -L https://gitlab.com/s...

centos系统如何安装squid,并设置开机启动,以及如何检测squid是否正常启动服务

在CentOS系统中安装Squid并设置开机启动,可以按照以下步骤进行操作:· 打开终端,输入以下命令安装Squid: 复制sudo yum updatesudo yum install squid安装完成后,可以通过以下命令检查Squid是否已经安装成功:复制squid -v输...

股票行情私有部署https://github.com/bosspen1/stock/issues

Issues · bosspen1/stock · GitHub项目介绍本项目偏向交易, 分析和策略这块相对不足. python版本还没达到开源的要求,需要的可以扫最后的二维码进群索取.自动交易股票交易接口(封装某网交易, 支持a股, etf, 可转债交易)交易策略股票数据抓取股票名字及新增自动更新...

在Docker中安装安卓11、12+Appium【web端android】

Docker-Android是一个docker镜像,建立在与移动网站测试和安卓项目有关的一切。仿真器--三星设备仿真器--Nexus设备真实设备目标使用 appium为移动网站运行UI测试用最新的构建工具构建Android项目并运行单元测试使用不同的框架为Android应用程序运行UI测试...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。