X86
# 定义服务集合
services:
# 服务名称:dsm(可自定义,用于标识此服务)
dsm:
# 容器名称:dsm(启动后容器的实际名称,便于识别和管理)
container_name: dsm
# 使用的镜像:vdsm/virtual-dsm(基于此镜像创建容器,该镜像用于运行虚拟DSM系统)
image: vdsm/virtual-dsm
# 环境变量配置
environment:
# 虚拟磁盘大小设置为256GB(指定DSM系统使用的虚拟存储容量)
DISK_SIZE: "256G"
# 设备映射(将宿主机的设备挂载到容器中,提供硬件支持)
devices:
# 挂载kvm设备,用于支持硬件虚拟化加速(提升DSM虚拟机性能)
- /dev/kvm
# 挂载tun设备,用于支持虚拟网络接口(实现容器内网络隧道功能)
- /dev/net/tun
# 添加Linux系统能力(赋予容器额外的系统权限)
cap_add:
# 授予网络管理员权限(允许容器配置网络、创建虚拟网卡等操作)
- NET_ADMIN
# 端口映射(宿主机端口:容器内端口)
ports:
# 将宿主机的5000端口映射到容器内的5000端口(DSM默认管理界面端口)
- 5000:5000
# 数据卷挂载(持久化存储容器数据)
volumes:
# 将宿主机当前目录下的dsm文件夹挂载到容器内的/storage目录
# 用于持久化保存DSM系统的数据(如配置、文件等,避免容器删除后数据丢失)
- ./dsm:/storage
# 重启策略:always(容器退出后总是自动重启,保证服务持续运行)
restart: always
# 优雅停止等待时间:15分钟(容器停止时最多等待15分钟,确保数据保存等操作完成)
stop_grace_period: 15m
ARM(有点慢。。。)
# 定义服务列表(Docker Compose 配置的核心节点,包含所有要运行的服务)
services:
# 服务名称:dsm(自定义名称,用于在 Compose 中标识该服务,可根据需求修改)
dsm:
# 容器名称:dsm(指定容器运行时的名称,便于通过 docker 命令直接操作该容器,如 docker logs dsm)
container_name: dsm
# 使用的镜像:vdsm/virtual-dsm(基于此镜像创建容器,该镜像用于在 Docker 中运行虚拟的 Synology DSM 系统)
image: vdsm/virtual-dsm
# 环境变量配置(为容器内的应用程序提供运行时参数)
environment:
# 设置虚拟磁盘大小为 110GB(指定分配给虚拟 DSM 系统的存储空间,需根据实际需求调整)
DISK_SIZE: "110G"
# 端口映射(将宿主机端口与容器内端口绑定,实现外部网络访问容器服务)
ports:
# 将宿主机的 5000 端口映射到容器的 5000 端口(DSM 系统默认的 HTTP 管理界面端口)
- 5000:5000
# 将宿主机的 5001 端口映射到容器的 5001 端口(DSM 系统默认的 HTTPS 管理界面端口,用于加密访问)
- 5001:5001
# 数据卷挂载(将宿主机目录与容器内目录关联,实现容器数据的持久化存储,避免容器删除后数据丢失)
volumes:
# 将当前目录下的 dsm 文件夹挂载到容器内的 /storage 目录(存储虚拟 DSM 的系统数据、配置和用户文件等)
- ./dsm:/storage
# 重启策略:always(容器退出时总是自动重启,确保服务在意外停止后能自动恢复运行)
restart: always
# 停止宽限期:15分钟(容器停止时,Docker 会等待15分钟让 DSM 系统完成数据保存和优雅关闭,再强制终止容器)
stop_grace_period: 15m
© 版权声明
尊重原创 · 保护知识产权
原创保护:本站所有原创内容均受著作权法保护,未经许可禁止转载或商业使用。
转载规范:如需转载,请注明出处并保留原文链接,不得删改内容。
免责声明:本站仅提供学习交流平台,内容观点不代表本站立场。
侵权处理:如发现侵权内容,请及时联系我们(jimhuhu1125@126.com),将在第一时间处理。
THE END








