<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="Virtual DSM for Docker-在Docker中跑的群晖（完美体验正版群晖）">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2023-07-05 18:17<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
Virtual DSM for Docker-在Docker中跑的群晖（完美体验正版群晖）




Github：https://github.com/vdsm/virtual-dsm


Dockerhub：https://hub.docker.com/r/vdsm/virtual-dsm


Virtual DSM for Docker可以在ARM64和X86平台上跑，可玩性比较高。设备必须支持KVM，实质就是KVM虚拟机。




docker-compose.yml




XML/HTML代码


    version: &quot;3&quot;

    services:

        dsm:

            container_name: dsm

            image: vdsm/virtual-dsm:latest

            environment:

                CPU_CORES: &quot;1&quot;

                DISK_SIZE: &quot;16G&quot;

                RAM_SIZE: &quot;512M&quot;

            devices:

                - /dev/kvm

                - /dev/vhost-net

            device_cgroup_rules:

                - 'c *:* rwm'

            cap_add:

                - NET_ADMIN

            ports:

                - 5000:5000

            volumes:

                - /opt/dsm:/storage

            restart: on-failure

            stop_grace_period: 1m







docker run




XML/HTML代码


    docker run -it --rm -p 5000:5000 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 60 vdsm/virtual-dsm:latest




更改虚拟磁盘的大小：


要扩展 16 GB 的默认大小，请在撰写文件中找到该设置并将其修改为首选容量：DISK_SIZE




XML/HTML代码


    environment:

        DISK_SIZE: &quot;256G&quot;





这也可用于将现有磁盘调整为更大的容量，而不会丢失数据。

更改虚拟磁盘的位置：


要从默认 Docker 卷更改虚拟磁盘的位置，请在撰写文件中包括以下绑定装载：




XML/HTML代码


    volumes:

        - /opt/dsm/data:/storage




更改虚拟磁盘保留的空间:


默认情况下，将提前保留整个磁盘空间。要创建仅保留实际使用的空间的可增长磁盘，请添加以下环境变量：




XML/HTML代码


    environment:

        ALLOCATE: &quot;N&quot;




不会影响任何现有磁盘，它仅适用于新创建的磁盘。


增加 CPU 或 RAM 的数量:


默认情况下，将单个内核和 512 MB RAM 分配给容器。要增加此值，请添加以下环境变量：




XML/HTML代码


    environment:

        CPU_CORES: &quot;4&quot;

        RAM_SIZE: &quot;2048M&quot;




验证系统是否支持 KVM:




XML/HTML代码


    sudo apt install cpu-checker

    sudo kvm-ok




如果您收到指示无法使用 KVM 加速的错误，请检查您的 BIOS 设置。kvm-ok


为容器分配单个 IP 地址:




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

如果要为容器分配单个 IP 地址，可以按如下方式创建 macvlan 网络：






XML/HTML代码


    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





请务必修改这些值以匹配本地子网。


创建网络后，将撰写文件更改为如下所示：






XML/HTML代码


    services:

        dsm:

            container_name: dsm

            ..&lt;snip&gt;..

            networks:

                vdsm:

                    ipv4_address: 192.168.0.100

      

    networks:

        vdsm:

            external: true



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

使用DHCP网络安装DSM




XML/HTML代码


    environment:

        DHCP: &quot;Y&quot;

    devices:

        - /dev/vhost-net

    device_cgroup_rules:

        - 'c *:* rwm'



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

如何安装特定版本的 vDSM:


默认情况下，将安装版本 7.2，但如果您更喜欢旧版本，则可以将其 URL 添加到撰写文件中，如下所示：




XML/HTML代码


    environment:

        URL: &quot;https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_VirtualDSM_42218.pat&quot;




使用此方法，您可以在保留文件数据的同时在不同版本之间切换。


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

只有两个细微的区别：不提供虚拟机管理器软件包，并且监控站不包括任何免费许可证。
</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
