在群晖 NAS 上部署 MinIO 推荐用Docker 容器部署(简单灵活) 以下是详细步骤(适配绝大多数群晖机型,包括 ARM 架构如 DS220j、x86 架构如 DS920+)。
前置准备
群晖 NAS 要求:
已安装 Docker 套件(群晖 DSM 6.2+ 均可在「套件中心」搜索安装)。
预留足够存储空间(MinIO 数据目录建议单独挂载,避免系统盘占满)。
网络规划:
确认 NAS 的局域网 IP(如 192.168.31.100),后续访问 MinIO 需用到。
开放端口:MinIO 默认控制台端口 9001、API 端口 9000(可自定义)。
Docker 容器部署(推荐)
步骤 1:创建 MinIO 数据目录
为了数据持久化(容器删除后数据不丢失),先在 NAS 上创建专用目录:
打开群晖 File Station,在任意共享文件夹下新建目录(例:minio/data 和 minio/config):
data:存储 MinIO 的对象数据(核心目录,建议放在大容量存储池)。
config:存储 MinIO 的配置文件(可选,用于保存访问规则、用户等)。
步骤 2:通过 Docker Compose 部署(更稳定,推荐)
群晖 Docker 支持导入 Docker Compose 文件,比手动创建容器更高效,步骤如下:
打开群晖 Docker 套件,切换到「容器」标签页,点击「创建」→「导入模板」。
复制以下 Docker Compose 内容,粘贴到「模板内容」中,修改对应参数(根据自身环境调整):
yaml
version: '3'
services:
minio:
image: minio/minio:latest # 最新稳定版(ARM/x86自动适配)
container_name: minio # 容器名称,自定义
restart: always # 开机自启
environment:
- MINIO_ROOT_USER=admin # 管理员账号(自定义,建议复杂些)
- MINIO_ROOT_PASSWORD=Minio@123 # 管理员密码(至少8位,强密码)
- MINIO_REGION=cn-east-1 # 区域配置(自定义,如cn-north-1)
ports:
- "9000:9000" # API端口(宿主机:容器,可修改宿主机端口如9002:9000)
- "9001:9001" # 控制台端口(宿主机:容器,同上)
volumes:
- /volume1/minio/data:/data # 数据目录映射(左侧为NAS实际路径,右侧固定/data)
- /volume1/minio/config:/root/.minio # 配置目录映射(可选)
command: server /data --console-address ":9001" # 启动命令(指定数据目录和控制台端口)
networks:
- minio-network
networks:
minio-network:
driver: bridge
参数说明(必须修改):
MINIO_ROOT_USER/MINIO_ROOT_PASSWORD:管理员账号密码,务必修改为强密码(避免默认值被攻击)。
volumes 中的 /volume1/minio/data:替换为你在步骤 1 创建的 data 目录实际路径(例:/volume2/共享文件夹/minio/data,可在 File Station 中右键目录→「属性」查看「位置」)。
ports:若 9000/9001 端口被占用,可修改左侧宿主机端口(如 9002:9000、9003:9001)。
点击「验证并导入」,等待镜像下载完成后,容器会自动启动。
步骤 3:访问 MinIO 控制台
打开浏览器,输入 http://NAS局域网IP:9001(例:http://192.168.31.100:9001)。
输入步骤 2 中设置的 MINIO_ROOT_USER(如 admin)和 MINIO_ROOT_PASSWORD(如 Minio@123),登录控制台。
首次登录后,建议先创建「存储桶」(类似文件夹),再上传文件测试(点击「Create a Bucket」,输入名称后点击「Create」,然后点击「Upload」上传文件)。
关键配置与优化
1. 端口映射与防火墙
若需外网访问 MinIO,需在路由器中设置「端口转发」(将路由器的 9000/9001 端口映射到 NAS 的对应端口)。
群晖 DSM 防火墙:在「控制面板」→「安全性」→「防火墙」中,允许 9000、9001 端口的入站连接。
2. 数据备份
MinIO 本身支持「纠删码」(默认单节点模式下,数据直接存储,无冗余),建议定期备份 data 目录(可通过群晖「Hyper Backup」套件备份到外接硬盘或云存储)。
若需高可用,可部署 MinIO 分布式集群(需多台 NAS 或服务器,适合企业场景)。
3. 更换 MinIO 控制台端口
若 9001 端口被占用,可修改启动命令中的 --console-address 参数(例:--console-address ":9003"),同时同步修改 Docker Compose 或任务计划中的端口配置。
4. 启用 HTTPS(安全访问)
方案 1(Docker):在 MinIO 控制台「Settings」→「HTTPS」中,上传 SSL 证书(群晖可通过「控制面板」→「安全性」→「证书」申请免费 Let's Encrypt 证书)。
方案 2(原生部署):启动时添加 --cert 和 --key 参数,指定证书路径:
bash运行
minio server /data --console-address ":9001" --cert /path/to/cert.pem --key /path/to/key.pem
常见问题排查
容器启动失败:
检查端口是否被占用:在群晖 Docker「网络」→「端口设置」中,确认 9000/9001 端口未被其他容器占用。
检查目录权限:确保 MinIO 容器对 data 目录有读写权限(可在 File Station 中右键目录→「属性」→「权限」,给「everyone」赋予「读写」权限)。
无法访问控制台:
确认容器已启动(Docker「容器」中查看 MinIO 状态为「运行中」)。
检查 NAS 防火墙是否开放对应端口。
确认输入的 IP 和端口正确(避免输成公网 IP 或错误端口)。
忘记管理员密码:
Docker 部署:停止容器,修改 Docker Compose 中的 MINIO_ROOT_PASSWORD,重新启动容器即可。
原生部署:修改任务计划中的 MINIO_ROOT_PASSWORD,重启 MinIO 服务。
通过以上步骤,即可在群晖 NAS 上成功部署 MinIO,实现私有化对象存储(可用于备份文件、搭建个人云盘、作为应用存储后端等)。Docker 方案更适合快速部署和维护,原生方案适合对容器化不熟悉或需要深度定制的场景。