打造自己的Virtual DSM:在Docker中体验Synology的强大功能

你是否曾想过在自己的硬件上体验SynologyVirtual DSM,但不想购买他们的硬件?那么,你来对地方了。在这篇文章中,我们将介绍如何在Docker容器中运行Virtual DSM,让你能够在自己的计算机上享受Synology DSM的众多功能,而无需购买他们的NAS硬件。

开篇故事

想象一下,你在寻找一种方法来备份家庭照片和视频,或者建立一个私人云来存储重要文件。你听说过Synology的强大NAS设备,但你不想花大笔资金购买一台。然后,你听说有人将Virtual DSM安装在Docker容器中,并且一切都运行得非常出色。你兴奋地开始探索这个想法,想知道如何在自己的计算机上实现这一目标。

好消息是,你来对地方了。在接下来的教程中,我们将逐步向你展示如何在Docker中运行Virtual DSM,并让你享受Synology DSM的全部功能。

准备工作

在开始之前,你需要满足一些要求:

  • 一台装有Docker的计算机。
  • 安装了docker-compose(如果你使用docker-compose)。
  • 能够运行KVM的硬件,并且已启用KVM虚拟化支持。

安装Virtual DSM

通过docker-compose.yml安装

首先,你可以通过创建一个docker-compose.yml文件来配置Virtual DSM容器。这个文件将告诉Docker如何运行容器以及如何配置它。

version: "3"
services:
    dsm:
        container_name: dsm
        image: kroese/virtual-dsm:latest
        environment:
            DISK_SIZE: "16G"
        devices:
            - /dev/kvm
            - /dev/vhost-net
        cap_add:
            - NET_ADMIN                       
        ports:
            - 5000:5000
        volumes:
            - /opt/dsm:/storage
        restart: on-failure
        stop_grace_period: 1m

这个docker-compose.yml文件的关键部分包括:

  • image:容器使用的Virtual DSM Docker镜像。
  • environment:可以设置的环境变量,例如磁盘大小(默认为16GB,你可以根据需要进行修改)。
  • devices:指定了容器可以访问的设备,包括KVM支持。
  • ports:将容器内的端口映射到主机的端口(例如,将容器的5000端口映射到主机的5000端口)。
  • volumes:将主机文件夹挂载到容器内,以便在容器中存储数据。
  • restart:设置容器在故障时自动重启。
  • stop_grace_period:定义了容器在关闭之前等待的时间。

一旦你创建了docker-compose.yml文件,只需在包含该文件的目录中运行以下命令来启动Virtual DSM容器:

docker-compose up -d

通过docker run安装

如果你不使用docker-compose,也可以通过以下命令手动运行Virtual DSM容器:

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

这个命令将以交互式模式启动容器,同时映射端口并配置KVM支持。

配置Virtual DSM

一旦容器运行,你可以通过浏览器访问 http://localhost:5000 来配置Virtual DSM。你将看到Synology DSM的初始设置页面,类似于在Synology硬件上的设置过程。

你可以使用默认的管理员用户名和密码进行登录(通常是admin / admin)。登录后,你可以根据需要配置和使用Virtual DSM的各种功能,包括文件共享、备份、媒体服务器等。

常见问题解答

以下是一些常见问题的解答,以帮助你更好地配置和使用Virtual DSM。

如何更改虚拟磁盘的大小?

要扩展默认大小(16GB),只需在docker-compose.yml文件中找到DISK_SIZE设置并将其修改为所需的容量:

environment:
    DISK_SIZE: "256G"

这也可以用于在不丢失数据的情况下将现有磁盘的大小增加到更大的容量。

如何更改虚拟磁盘的位置?

要更改虚拟磁盘的位置,可以在docker-compose.yml文件中包含以下绑定挂载:

volumes:
    - /home/user/data:/storage

将示例路径/home/user/data替换为所需的存储文件夹。

如何更改虚拟磁盘的空间保留方式?

默认情况下,磁盘空间会提前保留。要创建一个只保留实际使用空间的可扩展磁盘,请添加以下环境变量:

environment:
    ALLOCATE: "N"

请注意,这不会影响任何现有磁盘,它只适用于新创建的磁盘。

如何增加CPU或RAM的分配?

默认情况下,容器分配了一个核心和512MB的RAM。要增加这些资源,添加以下环境变量:

environment:
    CPU_CORES: "4"
    RAM_SIZE: "2048M"

如何验证我的系统是否支持KVM?

要验证系统是否支持KVM,运行以下命令:

sudo apt install cpu-checker
sudo kvm-ok

如果kvm-ok返回错误,表示无法使用KVM加速,请检查你的BIOS设置。

如何为容器分配独立的IP地址?

默认情况下,容器使用桥接网络,与主机共享IP地址。

如果要为容器分配独立的IP地址,你可以创建一个macvlan网络,如下所示:

docker network create -d macvlan \
    --subnet=192.168.0.0/24 \
    --gateway=192.168.0.1 \
    --ip-range=192.168.0.100/28 \
    -o parent=eth0 vdsm

确保修改这些值以匹配你的本地子网。

一旦创建了网络,将你的docker-compose.yml文件更改如下:

services:
    dsm:
        container_name: dsm
        ..
        networks:
            vdsm:             
                ipv4_address: 192.168.0.100

networks:
    vdsm:
        external: true

这种方法的额外好处是,你不再需要执行任何端口映射,因为所有端口都将默认公开。

请注意,由于macvlan的设计不允许两者之间的通信,因此来自Docker主机的IP地址将无法访问这个容器。如果这是一个问题,你需要创建第二个macvlan作为解决方法。

如何让容器从我的路由器获取IP地址?

在配置容器为macvlan(如上所述)后,DSM可以通过从你的路由器请求IP来成为你家庭网络的一部分,就像其他设备一样。

要启用这个功能,请将以下行添加到你的docker-compose.yml文件中:

environment:
    DHCP: "Y"
devices:
    - /dev/vhost-net
device_cgroup_rules:
    - 'c *:* rwm'

请注意,即使你不需要DHCP,也建议启用此功能,因为它可以防止NAT问题,并通过使用macvtap接口来提高性能。

如何安装特定版本的vDSM?

默认情况下,将安装7.2版本,但如果你喜欢较旧的版本,可以将其URL添加到你的docker-compose.yml文件中,如下所示:

environment:
    URL: "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_VirtualDSM_42218.pat"

使用这种方法,你可以在保留文件数据的同时在不同版本之间切换。

与标准DSM相比有什么区别?

与标准DSM相比,只有两个小的区别:不提供Virtual Machine Manager软件包,Surveillance Station不包含任何免费许可证。

这个项目是否合法?

是的,这个项目只包含开源代码,不分发任何受版权保护的材料。它也没有试图绕过任何版权保护措施。因此,在所有适用的法律下,这个项目都被认为是合法的。

然而,通过安装Synology的Virtual DSM,你必须接受他们的最终用户许可协议,该协议不允许在非Synology硬件上安装。因此,请只在官方Synology NAS上运行这个项目,因为任何其他用途都将违反他们的条款和条件。

结论

现在,你已经知道了如何在Docker容器中运行Virtual DSM,并且可以自己在计算机上体验Synology DSM的强大功能。无论你是想创建私人云、媒体服务器还是备份解决方案,Virtual DSM都为你提供了一个灵活且成本效益的选择。

请记住,Synology的Virtual DSM仍然受其最终用户许可协议的约束,因此只能在官方Synology硬件上合法使用。希望这篇文章对你有所帮助,让你更好地理解如何配置和使用Virtual DSM。

本文由作者 王大神 原创发布于 大神网的AI博客。

转载请注明作者:王大神

原文出处:打造自己的Virtual DSM:在Docker中体验Synology的强大功能

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年9月17日 下午10:56
下一篇 2023年9月17日

相关推荐

  • 安装 Docker 在 Ubuntu 最新版本上的步骤详解

    Docker 是一种强大的容器化平台,可以帮助开发者更轻松地构建、部署和管理应用程序。无论是在开发、测试还是生产环境中,Docker 都能提供高度一致的运行环境,从而减少了因环境差异而引发的问题。本教程将详细介绍…

    2023年11月14日
    00
  • 在 Windows Server 2019 上安装 Docker

    在 Windows Server 2019 上安装 Docker 下载 Docker 安装程序 首先,您需要从 Docker 官方网站下载适用于 Windows Server 2019 的 Docker 安装程序。访问 Docker 官方网站 并下载适用于 Windows 的 Docker 安装程序…

    2024年3月17日
    00
  • C++代码中的条件变量和互斥锁问题解析

    引子:解决C++代码中的条件变量和互斥锁问题 在编写C++代码时,经常需要使用条件变量(std::condition_variable)和互斥锁(std::mutex)来实现多线程同步。然而,这两者在使用时需要谨慎,特别是在容器中存储它们…

    2023年10月12日
    00
  • NAS用docker部署jellyfin教程

    曾经,我有一堆珍藏的音乐、视频和照片,它们散落在我的电脑、硬盘和各种存储设备中。每当我想要欣赏它们时,我得翻找不同的地方,有时还需要面对格式不兼容或者播放问题。然而,一天,我听说了一个名叫Jellyfin的…

    2023年8月23日
    00
  • Docker USB Key使用教程

    了解Docker USB Key使用问题的背景 当你尝试在Docker容器中使用USB设备时,可能会遇到各种问题,导致无法顺利使用。本教程将帮助你解决这些问题,让你能够成功在Docker容器中使用USB Key。 准备工作 在开始之前,确…

    2024年3月17日
    00
  • 解决Docker容器无法停止的问题

    在使用Docker时,有时会遇到容器无法停止的情况,这可能会给我们的工作和部署带来一些困扰。本教程将介绍如何解决Docker容器停止不了的问题,帮助您轻松应对这种情况。 1. 检查容器状态和日志 首先,我们需要检查容…

    2024年3月17日
    00
  • 宝塔面板:解决在ubuntu22.04LTS(pop os)下[Docker管理器]出错

    近期,我对我的虚拟机服务器进行了一次系统升级,为了更好地管理和使用,我决定安装一个新的服务器操作系统。在考虑众多选项后,我选择了Pop!_OS,一款基于Ubuntu/Debian的流行Linux发行版。为什么选择Pop!_OS呢?…

    2022年10月28日
    00
  • 将CentOS 7上的服务整体虚拟化或迁移到Docker

    将CentOS 7上的服务整体虚拟化或迁移到Docker 1. 简介 在现代软件开发中,虚拟化和容器化技术已经成为管理和部署应用程序的标准方式之一。通过将服务整体虚拟化或迁移到Docker容器中,您可以获得更好的灵活性、可移…

    2024年3月17日
    00
  • 玩转 Docker:使用 Terraform 管理容器化应用

    Docker 是一种流行的容器化技术,而 Terraform 则是一种用于自动化管理基础设施的工具。结合使用 Docker 和 Terraform 可以帮助您更加轻松地管理和部署容器化应用。本文将向您介绍如何使用 Terraform 管理 Docker …

    2024年3月17日
    00
  • 如何在2023年使用Docker在群晖上部署应用

    开篇故事 在数字化时代,我们越来越依赖于各种应用程序来提高工作效率、娱乐和解决问题。然而,管理这些应用程序并确保它们在不同环境中稳定运行可能会变得相当复杂。在这个过程中,Docker成为了一个不可或缺的工具…

    2023年10月12日
    00