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

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

如何将python3.6.8升级到3.8以上,centos8系统

· 在CentOS 8系统中,可以使用以下步骤将Python 3.6.8升级到3.8以上版本:· 1. 安装依赖项2. 在终端中输入以下命令安装所需的依赖项:复制sudo dnf install -y gcc openssl-devel bzip2-...

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

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

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

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

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

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

AList客户端AL Client v1.0.2

本帖最后由 anwen 于 2023-6-17 10:21 编辑AList是什么应该不需要过多赘述了吧,不知道的可以在官网看看,或者去看看我之前的一篇如何使用方便快捷使用AList用法虽然已经挺方便了,但是WebDav方式总有些太好使这不有大佬使用 AList的API 手搓的一份 Client(客户...

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

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

发表评论

访客

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