项目名称: 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 端口
动态扩容磁盘
如果我们想扩容磁盘,可以步骤如下,支持动态扩容
需要删除容器在创建,直接修改不生效
- 一、#编辑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
- 三、访问测试
扩容前
扩容后
本地磁盘
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. 附属、赞助或认可。
原文链接:https://i4t.com/16612.html