2026最新手把手:黑群晖Docker部署常用服务超详细教程

## 前言

黑群晖装好后,最强大的功能就是 Docker。通过 Docker 可以一键部署各种服务:下载工具、媒体服务器、私有网盘、照片管理……本教程教你从 Docker 基础配置开始,逐个部署最常用的 6 个服务,每个都有完整的 docker-compose 配置和操作说明。

## 一、Docker 环境配置

### 第1步:安装 Docker 套件

1. 打开 DSM → **套件中心**
2. 搜索 **Container Manager**(DSM 7.2 叫这个)或 **Docker**(DSM 7.1)
3. 点击 **安装** → 等待安装完成

### 第2步:开启 SSH 并连接

“`
控制面板 → 终端机和 SNMP → 启用 SSH 功能
“`

电脑终端执行:

“`bash
ssh 你的管理员名@黑群晖IP
# 输入密码
“`

### 第3步:配置 Docker 镜像加速

“`bash
# 编辑 Docker 配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF' { "registry-mirrors": [ "https://docker.1panel.live", "https://hub.rat.dev", "https://docker.m.daocloud.io", "https://dockerpull.org", "https://dockerhub.icu" ], "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } EOF # 重启 Docker sudo systemctl restart docker ``` ### 第4步:创建目录结构 ```bash # 在共享文件夹中创建 Docker 数据目录 sudo mkdir -p /volume1/docker/{jellyfin,qbittorrent,navidrome,frpc,alist,lucky} ``` ## 二、部署 Jellyfin 媒体服务器 Jellyfin 是完全免费开源的媒体服务器,可以看电影、电视剧、动漫。 ### docker-compose.yml ```bash sudo tee /volume1/docker/jellyfin/docker-compose.yml <<'EOF' version: "3.8" services: jellyfin: image: jellyfin/jellyfin:latest container_name: jellyfin environment: - PUID=0 - PGID=0 - TZ=Asia/Shanghai - JELLYFIN_PublishedServerUrl=http://黑群晖IP:8096 volumes: - /volume1/docker/jellyfin/config:/config - /volume1/docker/jellyfin/cache:/cache - /volume1/media/movies:/media/movies:ro - /volume1/media/tv:/media/tv:ro - /volume1/media/anime:/media/anime:ro ports: - "8096:8096" # Web 界面 - "8920:8920" # HTTPS - "7359:7359/udp" # 客户端发现 restart: unless-stopped EOF ``` ### 启动 ```bash cd /volume1/docker/jellyfin sudo docker compose up -d ``` ### 访问 浏览器打开 `http://黑群晖IP:8096`,按向导添加媒体库。 ## 三、部署 qBittorrent 下载工具 ### docker-compose.yml ```bash sudo tee /volume1/docker/qbittorrent/docker-compose.yml <<'EOF' version: "3.8" services: qbittorrent: image: linuxserver/qbittorrent:latest container_name: qbittorrent environment: - PUID=0 - PGID=0 - TZ=Asia/Shanghai - WEBUI_PORT=8080 volumes: - /volume1/docker/qbittorrent/config:/config - /volume1/downloads:/downloads ports: - "8080:8080" # Web 管理界面 - "6881:6881" # BT 下载端口 - "6881:6881/udp" restart: unless-stopped EOF ``` ### 启动和访问 ```bash cd /volume1/docker/qbittorrent sudo docker compose up -d ``` 浏览器打开 `http://黑群晖IP:8080` 默认账号:`admin` 默认密码:`adminadmin` > **首次登录后立即修改密码!**

## 四、部署 Alist 文件管理器

Alist 支持网盘聚合,可以统一管理阿里云盘、百度网盘、天翼云盘等。

### docker-compose.yml

“`bash
sudo tee /volume1/docker/alist/docker-compose.yml <<'EOF' version: "3.8" services: alist: image: xhofe/alist:latest container_name: alist environment: - PUID=0 - PGID=0 - TZ=Asia/Shanghai volumes: - /volume1/docker/alist/data:/opt/alist/data ports: - "5244:5244" restart: unless-stopped EOF ``` ### 获取初始密码 ```bash sudo docker logs alist 2>&1 | grep password
# 输出类似:initial password: xxxxxxxx
“`

### 访问

浏览器打开 `http://黑群晖IP:5244`,用初始密码登录后修改。

## 五、部署 NaviDrome 音乐服务器

### docker-compose.yml

“`bash
sudo tee /volume1/docker/navidrome/docker-compose.yml <<'EOF' version: "3.8" services: navidrome: image: deluan/navidrome:latest container_name: navidrome environment: - PUID=0 - PGID=0 - TZ=Asia/Shanghai - ND_SCANSCHEDULE=1h - ND_LOGLEVEL=info - ND_SESSIONTIMEOUT=24h volumes: - /volume1/docker/navidrome/data:/data - /volume1/media/music:/music:ro ports: - "4533:4533" restart: unless-stopped EOF ``` ### 访问 浏览器打开 `http://黑群晖IP:4533`,创建管理员账号。 ## 六、部署 frpc 内网穿透 让外网也能访问你的黑群晖服务。 ### docker-compose.yml ```bash sudo tee /volume1/docker/frpc/docker-compose.yml <<'EOF' version: "3.8" services: frpc: image: snowdreamtech/frpc:latest container_name: frpc volumes: - /volume1/docker/frpc/frpc.toml:/etc/frp/frpc.toml restart: unless-stopped EOF ``` ### frpc.toml 配置 ```bash sudo tee /volume1/docker/frpc/frpc.toml <<'EOF' serverAddr = "你的VPS公网IP" serverPort = 7000 auth.token = "你的frps密码" [[proxies]] name = "dsm-web" type = "tcp" localIP = "127.0.0.1" localPort = 5000 remotePort = 5000 [[proxies]] name = "jellyfin" type = "tcp" localIP = "127.0.0.1" localPort = 8096 remotePort = 8096 [[proxies]] name = "qbittorrent" type = "tcp" localIP = "127.0.0.1" localPort = 8080 remotePort = 8080 EOF ``` ## 七、一键管理所有容器 ### 启动所有服务 ```bash for dir in /volume1/docker/*/; do if [ -f "$dir/docker-compose.yml" ]; then echo "启动: $dir" cd "$dir" && sudo docker compose up -d fi done ``` ### 查看所有容器状态 ```bash sudo docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" ``` ### 更新所有容器 ```bash for dir in /volume1/docker/*/; do if [ -f "$dir/docker-compose.yml" ]; then echo "更新: $dir" cd "$dir" && sudo docker compose pull && sudo docker compose up -d fi done sudo docker image prune -f ``` ## 八、常见报错解决 | 报错 | 原因 | 解决方案 | |------|------|---------| | `镜像拉取超时` | 国内网络问题 | 配置镜像加速器 | | `端口被占用` | DSM 自带服务占了端口 | 换一个映射端口 | | `权限不足读写文件` | PUID/PGID 设置不对 | 设为 0(root) | | `容器启动后立即退出` | 配置文件格式错误 | `docker logs 容器名` 查看错误 | | `数据丢失` | volumes 没映射 | 必须映射数据目录 | | `Jellyfin 转码失败` | 没有硬件加速 | 低配用 CPU 软解即可 | | `qBittorrent 下载慢` | 端口未开放 | 路由器映射 6881 端口 | | `Alist 挂载网盘失败` | Token 过期 | 重新获取网盘 Token | ## 九、避坑总结 1. 所有数据目录必须映射到 `/volume1/`,不然容器重建数据就没了 2. PUID/PGID 设 0 最省事,避免各种权限问题 3. 每个服务一个独立目录,方便管理和备份 4. 镜像加速器必配,国内不配基本拉不动 5. 定期用 `docker image prune` 清理无用镜像释放空间 6. 重要数据务必备份 config 目录 7. 不要用 latest 标签盲目更新,有重大版本更新先看 changelog 本文由技术保姆网 JSBMW.CN 原创,转载请注明出处。

发表回复