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

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” 的相关文章

Docker部署NextCloud

集成环境CentOS7+Docker CE(社区版)+NextCloud社区版Docker安装(已安装可跳过)yum update //安装yum-utils yum install -y yum-utils device-mapper-pe...

盘点12个 yyds 的低代码开源项目

1. AppsmithAppsmith 是一款开源低代码框架,主要用于构建管理面板、内部工具和仪表板等,允许拖放 UI 组件来构建页面,通过连接到任何 API、数据库或 GraphQL 源,并使用 JavaScript 语言编写逻辑,可以在短时间内创建内部应用程序。Github(⭐️ 20.2k):...

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

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

大麦网自动购票, 支持docker一键部署。

特别声明本项目内所有资源文件,禁止任何公众号、自媒体进行任何形式的转载、发布。编写本项目主要目的为学习和研究Rust,无法保证项目内容的合法性、准确性、完整性和有效性。本项目涉及的数据由使用的个人或组织自行填写,本项目不对数据内容负责,包括但不限于数据的真实性、准确性、合法性。使用本项目所造成的一切...

Navicat Premium 15 永久破解激活工具及安装教程

Navicat Premium 15 永久破解激活工具及安装教程(亲测可用) - MarchXD - 博客园 (cnblogs.com)下载安装包和破解工具navicat15下载:官网下载:http://download.navicat.com.cn/download/navicat150_prem...

在群晖上安装运行Airflow

不知道是什么用,主要是甲骨文占用资源,防ban号。什么是 Airflow ?Apache Airflow 是一个开源平台,用于开发、调度和监控面向批处理的工作流。Airflow 的可扩展 Python 框架使您能够构建与几乎任何技术连接的工作流。Web&nbs...

发表评论

访客

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