使用Docker快速安装群晖NAS virtualdsm系统

2023年 7月 1日 153.4k 0

我们对于群晖的认知还停留在通过安装群晖系统的方式来安装群晖,目前在Github已经支持使用Docker来运行群晖dsm系统。让我们可以快速的拥有一套自己的nas

文章目录

  • 基础条件
  • 安装virtual-dsm
  • 配置参数说明
  • 访问测试
  • 动态扩容磁盘
  • 与标准 DSM 相比有何差异?
  • 这个项目合法吗?
  • 免责声明
  • 项目名称: virtual-dsm

    基础条件

  • Docker & Docker compose
  • 开启虚拟化
  • 需要支持kvm /dev/kvm驱动支持,底层会调用kvm,如果不使用kvm加速cpu负载会高
  • Linux < 5.3
  • 推荐Ubuntu
  • virtual镜像实际上底层会调用kvm驱动,纯云服务器可能不支持!
    温馨提示: 群晖DSM上可以在嵌套virtual-dsm

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

    sudo apt install cpu-checker
    sudo kvm-ok

    如果有错误消息,kvm-ok指示无法使用 KVM 加速,请检查您的 BIOS 设置。

    安装virtual-dsm

    docker compose启动文件

    cat >>docker-compose.yml<<EOF
    version: "3"
    services:
        dsm:
            container_name: dsm
            image: kroese/virtual-dsm:latest
            environment:
                DISK_SIZE: "20G"     #磁盘大小(最小16g)
                ALLOCATE: "N"
                CPU_CORES: "4"
                RAM_SIZE: "2048M"
    
            devices:
                - /dev/kvm
            cap_add:
                - NET_ADMIN                       
            ports:
                - 5000:5000
            volumes:
                - /opt/dsm:/storage
            restart: on-failure
            stop_grace_period: 1m
    EOF
    
    root@abcdocker:~# docker compose up -d
    
    #创建成功
    [+] Running 7/7
     ✔ dsm 6 layers [⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                                               17.1s 
       ✔ 5b5fe70539cd Pull complete                                                                                                                               10.5s 
       ✔ f9ac7e0c24db Pull complete                                                                                                                               12.8s 
       ✔ e9cfd4b1bfb4 Pull complete                                                                                                                               12.9s 
       ✔ 04a8f1356af9 Pull complete                                                                                                                               12.9s 
       ✔ ce474df379bd Pull complete                                                                                                                               13.0s 
       ✔ 51abe57c89c6 Pull complete                                                                                                                               13.0s 
    [+] Building 0.0s (0/0)                                                                                                                                             
    [+] Running 2/2
     ✔ Network root_default  Created                                                                                                                               0.1s 
     ✔ Container dsm         Started 

    创建时等待时间会比较长,可以耐心等待一会

    接下来我们可以查看到名称为dsm的容器

    [root@tmp-01 dsm]# docker compose ps
    Name     Command     State                                     Ports                                   
    -------------------------------------------------------------------------------------------------------
    dsm    /run/run.sh   Up      139/tcp, 22/tcp, 445/tcp, 0.0.0.0:5000->5000/tcp,:::5000->5000/tcp, 80/tcp

    通过Docker容器可以看到详细的信息

    [root@tmp-01 dsm]# docker ps
    CONTAINER ID   IMAGE                       COMMAND         CREATED         STATUS                                 PORTS                                            S
    12141b8bdfda   kroese/virtual-dsm:latest   "/run/run.sh"   3 minutes ago   Up About a minute (health: starting)   22/tcp, 80/tcp, 139/tcp, 445/tcp, 0.0.0.0:5000->5m
    [root@tmp-01 dsm]# docker logs -f dsm
    

    docker日志会先下载相关的依赖包

    [root@tmp-01 dsm]# docker logs -f dsm
    ❯ Starting Virtual DSM for Docker v4.08...
    ❯ Install: Downloading installer...
    ❯ Install: Downloading DSM_VirtualDSM_64570.pat...
    
         0K ........ ........ ........ ........  8% 5.34M 61s
     32768K ........ ........ ........ ........ 17% 9.09M 44s
     65536K ........ ........ ........ ........ 26% 9.01M 36s
     98304K ........ ........ ........ ........ 35% 8.27M 30s
    131072K ........ ........ ........ ........ 44% 7.28M 26s
    163840K ........ ........ ........ ........ 53% 8.29M 22s
    196608K ........ ........ ........ ........ 62% 8.11M 17s
    229376K ........ ........ ........ ........ 71% 9.70M 13s
    262144K ........ ........ ........ ........ 80% 8.60M 9s
    294912K ........ ........ ........ ........ 89% 7.24M 5s
    327680K ........ ........ ........ ........ 98% 8.19M 1s
    360448K .....                              100% 6.86M=45s
    
    ❯ Install: Extracting downloaded image...
    ❯ Install: Extracting system partition...
    ❯ Install: Installing system partition...
    Suggestion: Use Linux kernel >= 3.18 for improved stability of the metadata and journal checksum features.
    char device redirected to /dev/pts/0 (label charserial0)

    中间启动安装速度比较慢,根据网络影响,耐心等待,急时查看docker dsm容器日志

    当结束后,日志输出以下

    ❯ Started VirtualDSM Agent v7...
    Thu Jun 29 21:26:25 2023
    
    VirtualDSM login: 
    ❯ --------------------------------------------------------
    ❯  You can now login to DSM at port 5000
    ❯ --------------------------------------------------------
    
    ^C
    root@abcdocker:~# docker logs -f 5f71ad234269

    可以先用命令curl 一下状态,来判断容器网络是否正常

    root@abcdocker:~# curl localhost:5000 -I
    HTTP/1.1 200 OK
    Server: nginx
    Date: Fri, 30 Jun 2023 04:56:21 GMT
    Content-Type: text/html; charset="UTF-8"
    Connection: keep-alive
    Keep-Alive: timeout=20
    Vary: Accept-Encoding
    Cache-control: no-store
    X-Content-Type-Options: nosniff
    X-XSS-Protection: 1; mode=block
    X-Frame-Options: SAMEORIGIN
    P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
    Content-Security-Policy: base-uri 'self';  connect-src data: ws: wss: http: https:; default-src 'self' 'unsafe-eval' data: blob: https://*.synology.com https://www;

    配置参数说明

    容器镜像相关参数

            container_name: dsm                       #容器名称
            image: kroese/virtual-dsm:latest     #镜像版本
    
            devices:
                - /dev/kvm                                #/dev/kvm为支持kvm驱动
            cap_add:
                - NET_ADMIN                       
            ports:
                - 5000:5000                                 #端口映射
            volumes:
                - /opt/dsm:/storage                     #磁盘挂载点
            restart: on-failure                             #容器退出后一直重启
            stop_grace_period: 1m

    群晖参数

            environment:
                DISK_SIZE: "20G"     #磁盘大小(最小16g,可以动态缩容扩容)
                ALLOCATE: "N"        #按需占用磁盘,而不是一次性占用20G
                CPU_CORES: "4"      #CPU核心数,可以指定容器的cpu数量
                RAM_SIZE: "2048M"   #群晖内存
                URL: "https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_VirtualDSM_42218.pat"                        #默认情况下,将安装 7.2 版本,但如果您更喜欢旧版本,可以将其 URL 添加到您的撰写文件中

    访问测试

    访问 Docker ip:5000 端口
    1688099342939.png

    动态扩容磁盘

    如果我们想扩容磁盘,可以步骤如下,支持动态扩容

    需要删除容器在创建,直接修改不生效

  • 一、#编辑docker-compose文件
  •         environment:
                DISK_SIZE: "30G"     #这个随便写根据你硬盘大小判断
  • 二、重建docker dsm容器
  • 简单说下步骤,就是删除docker dsm容器,在重新创建。数据已经持久化在/opt/dsm,只要硬盘够,可以无限调整

    root@abcdocker:~# docker compose stop 
    [+] Stopping 1/1
     ✔ Container dsm  Stopped  
    
    root@abcdocker:~# docker ps -a
    CONTAINER ID   IMAGE                       COMMAND         CREATED          STATUS                        PORTS     NAMES
    5f71ad234269   kroese/virtual-dsm:latest   "/run/run.sh"   30 minutes ago   Exited (143) 20 seconds ago             dsm
    root@abcdocker:~# docker rm dsm
    dsm
    
    root@abcdocker:~# docker compose up -d
    [+] Building 0.0s (0/0)                                                                                                                                             
    [+] Running 1/1
     ✔ Container dsm  Started    
  • 三、访问测试
  • 扩容前1688101081800.png
    扩容后
    1688101204371.png
    本地磁盘

    root@abcdocker:~# ls -lh /opt/dsm/
    total 4.1G
    -rw-r--r-- 1 root root  30G Jun 30 05:01 data.img    #实际上就是动态调整img文件
    -rw-r--r-- 1 root root 5.2M Jun 30 04:24 dsm.rd
    -rw-r--r-- 1 root root   21 Jun 30 04:25 dsm.ver
    -rw-r--r-- 1 root root    2 Jun 30 04:25 DSM_VirtualDSM_64570.agent
    -rw-r--r-- 1 root root 110M Jun 30 04:56 DSM_VirtualDSM_64570.boot.img
    -rw-r--r-- 1 root root 358M Jun 15 10:46 DSM_VirtualDSM_64570.pat
    -rw-r--r-- 1 root root 4.7G Jun 30 05:01 DSM_VirtualDSM_64570.system.img

    与标准 DSM 相比有何差异?

    只有两个细微差别:不提供 Virtual Machine Manager 软件包,并且 Surveillance Station 不包含任何免费许可证。

    这个项目合法吗?

    是的,该项目仅包含开源代码,不分发任何受版权保护的材料。它也不试图规避任何版权保护措施。因此,根据所有适用的法律,该项目将被视为合法。
    但是,通过安装 Synology 的 Virtual DSM,您必须接受其最终用户许可协议,该协议不允许在非 Synology 硬件上安装。因此,只能通过 Container Manager 软件包在官方 Synology NAS 上运行此项目,因为任何其他使用都将违反其条款和条件。

    免责声明

    仅在 Synology 硬件上运行此容器,其 EULA 不允许任何其他用途。本项目中提及的产品名称、徽标、品牌和其他商标均为其各自商标所有者的财产。此项目并非由 Synology, Inc. 附属、赞助或认可。

    相关文章:

    1. Centos7 使用Docker安装Plex媒体播放器
    2. Docker 性质及版本选择 [二]
    3. Docker 导出多个镜像合并成一个tar
    4. 深入解析Docker 架构原理

    相关文章

    塑造我成为 CTO 之路的“秘诀”
    “人工智能教母”的公司估值达 10 亿美金
    教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
    Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
    Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
    上海新增 11 款已完成登记生成式 AI 服务

    发布评论