群晖 Emby 套件迁移到 Docker 的完整指南

群晖 Emby 套件迁移到 Docker 的完整指南
适用于已在群晖上使用 Emby 套件,希望保留所有数据并改为 Docker 部署的用户。
为什么迁移到 Docker?
- 数据路径可控,更方便安装第三方插件
- 可指定版本,升级降级更灵活(套件无法回退到低版本)
- 容器可设置代理访问,解决刮削慢的问题(套件需修改 host 或依赖第三方插件)
系统和版本
- 群晖 DSM 7.2
- 已安装 Container Manager 套件
- Emby 套件当前版本为 4.9.0.43
- 使用 Emby 官方 Docker 镜像 emby/embyserver:4.9.0.43
迁移步骤
步骤一:准备 Docker 数据目录
在群晖 DSM 的 File Station 中创建以下目录结构用于 Docker 容器持久化配置路径:
/volume1/docker/embyserver/config # Emby 数据目录
/volume1/docker/embyserver/compose # 用于存放 docker-compose.yml 文件
步骤二:复制原数据
群晖 Emby 套件数据位置
默认位于:
/volume1/@appdata/EmbyServer
需要迁移的目录和文件
config: 主配置文件(用户、媒体库设置等)data: 数据缓存和数据库metadata: 元数据(封面、描述等)plugins: 已安装插件root: 媒体库配置logs: 日志文件(建议迁移)fonts: 字体资源(建议迁移)
无需迁移的目录和文件
cache: 临时缓存transcoding-temp: 转码临时文件EmbyServer.pid: 运行时生成的 PID 文件
迁移后的目录结构
/volume1/docker/embyserver/config
├── config
├── data
├── metadata
├── plugins
├── root
├── logs
├── fonts
步骤三:创建 docker-compose.yml
version: '3.8'
services:
embyserver:
image: emby/embyserver:4.9.0.43
container_name: embyserver
network_mode: host
environment:
- TZ=Asia/Shanghai
- UID=0
- GID=0
volumes:
- /volume1/docker/embyserver/config:/config
- /volume1/video:/volume1/video # 你的视频库路径
- /volume2/video2:/volume2/video2 # 其他视频库路径
devices:
- /dev/dri:/dev/dri
restart: unless-stopped
配置说明
image指定与套件一致的版本,避免兼容性问题(建议明确指定版本号而非使用 latest)network_mode: host推荐使用,便于 IPv6 访问UID=0和GID=0使用管理员用户- 目录映射中,Docker 的
/config对应套件的完整 EmbyServer 目录 - 硬解设备映射
/dev/dri适用于 Intel 内置核显(其他硬件需参考官方文档)
步骤四:释放默认端口
防止 Docker 端口与套件端口冲突,推荐两种方案:
方案一:修改套件端口(推荐)
- 在 Emby Web 端,进入设置 -> Emby Server -> 网络
- 修改端口:
- HTTP 端口号:8096 → 8097
- HTTPS 端口号:8920 → 8921
- 手动停止 Emby 套件(之后无需再启动)
方案二:修改 Docker 端口
编辑 docker/embyserver/config/config/system.xml 文件,修改端口配置。仅推荐方案一以实现丝滑迁移。
步骤五:创建 Docker 项目
在 Container Manager 中创建 Docker 项目:
- 项目名称: embyserver
- 路径:
/volume1/docker/embyserver/compose/ - 来源: 使用之前创建的 docker-compose.yml 文件
推荐创建项目而非单独容器,便于使用 docker-compose 管理。
步骤六:启动项目并检查配置
- 启动项目,等待自动拉取镜像并启动
- 迁移后首次进入 Emby 后台,检查并确认:
- 媒体库语言与刮削器设置是否正确(部分设置可能被重置)
- 插件是否完整加载并正常运行
其他问题
访问 TMDB 超时问题
迁移后可能出现刮削时访问 TMDB 失败的问题:
Error HttpClient: Connection to https://api.themoviedb.org/3/movie/587?api_key=x_secret3_x&... timed out
解决方案
-
方案一(推荐):使用 Emby 神医助手插件
- 在插件的元数据设置中,替代 TMDB API 地址为:
https://api.tmdb.org
- 在插件的元数据设置中,替代 TMDB API 地址为:
-
方案二:配置 https_proxy 代理
- 在 docker-compose.yml 中添加代理配置(需自建代理服务器)
Comments