vdsm/virtual-dsm
GitHub: vdsm/virtual-dsm
在Docker容器中运行虚拟Synology DSM,方便快速部署和测试NAS环境。
Stars: 3822 | Forks: 474
Virtual DSM
[![Build]][build_url]
[![Version]][tag_url]
[![Size]][tag_url]
[![Package]][pkg_url]
[![Pulls]][hub_url]
在 Docker 容器中运行的虚拟 DSM。
## 特性 ✨
- 多磁盘支持
- KVM 加速
- 支持升级
## 使用 🐳
##### 通过 Docker Compose:
```
services:
dsm:
container_name: dsm
image: vdsm/virtual-dsm
environment:
DISK_SIZE: "256G"
devices:
- /dev/kvm
- /dev/net/tun
cap_add:
- NET_ADMIN
ports:
- 5000:5000
volumes:
- ./dsm:/storage
restart: always
stop_grace_period: 2m
```
##### 通过 Docker CLI:
```
docker run -it --rm --name dsm -e "DISK_SIZE=256G" -p 5000:5000 --device=/dev/kvm --device=/dev/net/tun --cap-add NET_ADMIN -v "${PWD:-.}/dsm:/storage" --stop-timeout 120 docker.io/vdsm/virtual-dsm
```
##### 通过 Kubernetes:
```
kubectl apply -f https://raw.githubusercontent.com/vdsm/virtual-dsm/refs/heads/master/kubernetes.yml
```
##### 通过 Github Codespaces:
[](https://codespaces.new/vdsm/virtual-dsm)
## 常见问题 💬
### 如何使用?
非常简单!以下是步骤:
- 启动容器,然后使用网络浏览器连接到[端口 5000](http://127.0.0.1:5000/)。
- 等待 DSM 完成安装
- 选择用户名和密码,之后您将进入桌面。
享受您的全新 NAS,并别忘了为这个仓库点星!
### 如何更改存储位置?
要更改存储位置,请在 compose 文件中包含以下绑定挂载:
```
volumes:
- ./dsm:/storage
```
将示例路径 `./dsm` 替换为所需的存储文件夹或命名卷。
### 如何更改磁盘大小?
要扩展默认的 256 GB 大小,请在 compose 文件中找到 `DISK_SIZE` 设置,并将其修改为首选容量:
```
environment:
DISK_SIZE: "512G"
```
### 如何添加多个磁盘?
要创建额外磁盘,请按如下方式修改您的 compose 文件:
```
environment:
DISK2_SIZE: "500G"
DISK3_SIZE: "750G"
volumes:
- ./example2:/storage2
- ./example3:/storage3
```
### 如何直通磁盘?
可以通过以下方式将磁盘设备或分区直接添加到 compose 文件中:
```
devices:
- /dev/sdb:/disk1
- /dev/sdc1:/disk2
```
确保磁盘完全为空(没有文件系统),否则 DSM 可能无法将其格式化为卷。
### 如何更改 CPU 或 RAM 的数量?
默认情况下,Virtual DSM 将被允许使用 2 个 CPU 核心和 2 GB RAM。
如果要调整,可以使用以下环境变量指定所需数量:
```
environment:
RAM_SIZE: "4G"
CPU_CORES: "4"
```
### 如何验证我的系统是否支持 KVM?
首先使用此图表检查您的软件是否兼容:
| **产品** | **Linux** | **Win11** | **Win10** | **macOS** |
|---|---|---|---|---|
| Docker CLI | ✅ | ✅ | ❌ | ❌ |
| Docker Desktop | ❌ | ✅ | ❌ | ❌ |
| Podman CLI | ✅ | ✅ | ❌ | ❌ |
| Podman Desktop | ✅ | ✅ | ❌ | ❌ |
之后,您可以在 Linux 中运行以下命令来检查系统:
```
sudo apt install cpu-checker
sudo kvm-ok
```
如果 `kvm-ok` 返回错误指示无法使用 KVM,请检查:
- BIOS 中是否启用了虚拟化扩展(`Intel VT-x` 或 `AMD SVM`)。
- 如果您在虚拟机中运行容器,是否启用了“嵌套虚拟化”。
- 您没有使用云服务提供商,因为大多数云提供商的 VPS 不允许嵌套虚拟化。
如果 `kvm-ok` 没有返回任何错误,但容器仍然报错缺少 KVM 设备,可以在 compose 文件中添加 `privileged: true`(或在 `docker` 命令中使用 `sudo`)以排除权限问题。
### 如何为容器分配独立 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
```
确保将这些值修改为与您的本地子网匹配。
创建网络后,将您的 compose 文件更改为如下所示:
```
services:
dsm:
container_name: dsm
..标签:Awesome, DNS解析, Docker, Docker Compose, GitHub Codespaces, KVM, NAS, Synology DSM, Web管理, 云计算, 云部署, 企业存储, 子域名突变, 存储虚拟化, 存储解决方案, 安全防御评估, 家庭服务器, 容器技术, 容器编排, 开源项目, 数据管理, 生成式AI安全, 磁盘管理, 系统管理, 网络存储, 虚拟化, 虚拟机, 规则引擎, 请求拦截
