🚀 使用 Docker Compose 部署 emby
🚀 使用 Docker Compose 部署 Emby
Emby(原名Media Browser)是一款主从式架构的媒体服务器软件,能够将您散落在各处的视频、音乐、图片等媒体文件集中管理,并流畅地串流到智能电视、手机、平板等多种设备上。通过 Docker Compose 部署,可以简化安装过程,确保环境一致性,并便于后续维护。
📦 项目简介
Emby 的核心价值在于为您打造一个统一、美观且跨平台的私人影音中心。 * 智能媒体库管理:它能自动刮削(Scrape) 互联网上的元数据(如电影海报、简介、演员信息等),为您的媒体文件生成精美的海报墙。 * 强大的转码能力:当客户端设备不支持原始媒体格式时,Emby 服务器能进行实时转码,确保流畅播放。它还支持利用 GPU(如 Intel QSV、NVIDIA)进行硬件加速,大幅降低 CPU 负载,轻松应对多用户同时播放。 * 全平台覆盖:客户端支持范围极其广泛,包括网页浏览器、Android/iOS 移动端、智能电视(如 Samsung、LG)、流媒体设备(如 Roku、Amazon Fire TV)以及游戏机(如 Xbox)等。 * 多用户与权限控制:您可以创建多个用户账号,并为不同用户设置不同的媒体库访问权限,轻松实现家庭共享或朋友分享,同时保护隐私内容。
⚙️ 部署前准备
-
环境要求
- 已安装 Docker 和 Docker Compose。
- 系统内存:建议 2GB 以上,若需处理多路转码则要求更高。
- 磁盘空间:确保有足够空间存储媒体文件及 Emby 的配置、元数据缓存。
-
环境检查 在终端中执行以下命令,确认 Docker 环境正常:
bash docker --version docker-compose --version -
创建项目目录 建议创建一个独立的目录来管理所有部署文件。
bash mkdir -p /opt/docker/emby cd /opt/docker/emby
🛠️ 配置 Docker Compose
基于你提供的配置,这里是对 docker-compose.yml 文件的解读和优化说明。你将以下内容保存为 docker-compose.yml 文件即可。
networks:
videos:
external: true # 使用已存在的外部网络,便于其他容器通信# 使用已创建的外部网络(需提前执行 docker network create videos)
#version: '3.8'
services:
emby:
image: amilys/embyserver:latest # 开心版专属镜像 # 注意:此为特定修改版镜像
container_name: emby
restart: always
devices:
- /dev/dri:/dev/dri # 挂载显卡设备,用于硬件加速转码
volumes:
#- ./data/config:/config # 配置文件持久化
- /mnt/10t/cache/data_emby/config:/config # 配置文件持久化
#- ./media:/media
- /mnt/10t/videos:/media # 挂载媒体文件目录
#- /mnt/10t/file/media:/media2
ports:
- 5006:8096 # 主机端口:容器端口,Web访问端口
#- "8920:8920" # HTTPS端口(可选)
environment:
#- UID=1000 # 权限控制
#- GID=1000
- UID=0 # 设置为root用户,避免权限问题
- GID=0
- TZ=Asia/Shanghai # 设置时区,请根据您的实际情况修改
#- HTTP_PROXY=http://192.168.0.3:20171 # 例如 http://192.168.1.100:8080
#- HTTPS_PROXY=http://192.168.0.3:20171 # 注意这里也是 http://
#- NO_PROXY=localhost,127.0.0.1
networks:
videos:
ipv4_address: 10.1.1.3 # 指定容器在网络中的静态IP
#ipv6_address: 2001:3984:3989::10
关键配置说明:
| 配置项 | 说明与建议 |
|---|---|
image |
你使用的是特定修改版镜像。官方镜像通常为 emby/embyserver 或 linuxserver/emby。 |
devices |
/dev/dri 的映射对于硬件加速至关重要。请确保宿主机存在该设备,并可考虑添加 --device /dev/dri 参数。 |
volumes |
/config 的映射用于持久化 Emby 的所有配置和元数据,务必确保目录正确。/media 映射了你的媒体库。 |
ports |
"5006:8096" 将容器内的 8096 端口映射到主机的 5006 端口。你可按需修改主机端口,容器端口一般不变。 |
environment |
TZ 设置正确时区很重要。UID 和 GID 设置为 0 (root) 可能简化权限问题,但出于安全考虑,最佳实践是使用非特权用户。 |
networks |
使用外部网络并指定静态 IP,便于容器间通信。 |
注意:关于镜像选择,请知晓你使用的
amilys/embyserver:latest并非官方镜像。若追求稳定性和官方支持,可考虑改用emby/embyserver:latest或linuxserver/emby:latest。
🚀 启动与验证
-
启动服务 在
docker-compose.yml文件所在目录执行:bash docker-compose up -d此命令会拉取镜像并在后台启动容器。 -
检查服务状态
bash docker-compose ps如果看到emby容器的状态为Up,说明服务已成功启动。 -
查看实时日志(可选) 如果遇到问题,可以通过以下命令查看容器日志来排查:
bash docker-compose logs -f emby -
访问 Web 界面 打开浏览器,访问
http://你的服务器IP:5006。- 如果一切正常,你将看到 Emby 的初始化界面。
⚙️ 基础配置与使用
-
初始化设置
- 语言选择:在欢迎页面选择 "简体中文"。
- 创建管理员账户:设置你的用户名和密码(例如配置中提示的
admin/Clxr20)。 - 添加媒体库:这是核心步骤。
- 点击"添加媒体库",选择内容类型(电影、电视节目等)。
- 在"文件夹"选项中,点击"添加文件夹",此处应填写容器内的媒体文件夹路径。根据你的配置,例如
/media。请务必使用容器内路径,而非宿主机路径。 - 建议为电影、电视剧、音乐等不同类型的内容分别创建媒体库,并选择对应的元数据语言(如"中文")。
-
配置硬件加速(提升性能关键)
- 进入 Emby 管理后台 "控制台" -> "转码"。
- 在 "硬件加速" 下拉菜单中,根据你的显卡选择(如 Intel Quick Sync 对应
VAAPI或Intel QuickSync)。 - 开启 "硬件解码" 和 "硬件编码"。
- "转码临时路径" 可保持默认或设置为
/config/transcodes(确保有足够空间和权限)。
-
设置远程访问(可选)
- 如果你有公网 IP,可在 "控制台" -> "网络" 中填写公网 IP 并勾选 "允许远程连接"。
- 若无公网 IP,可通过内网穿透工具实现外网访问。
🔒 维护与管理
-
服务管理:
- 停止服务:
docker-compose down - 重启服务:
docker-compose restart - 查看服务状态:
docker-compose ps
- 停止服务:
-
数据备份:
- 定期备份
docker-compose.yml文件以及映射的/config目录(在你的配置中是/mnt/10t/cache/data_emby/config),这里包含了所有 Emby 的配置、用户数据和元数据。
- 定期备份
-
版本更新:
bash # 进入 docker-compose.yml 所在目录 docker-compose down docker-compose pull # 拉取最新镜像 docker-compose up -d # 可选:清理无用镜像 docker image prune
🐛 常见问题排查 (FAQ)
| 问题现象 | 可能原因与解决方法 |
|---|---|
| 无法访问 Web 界面 | 1. 检查防火墙/安全组是否放行 5006 端口。 2. 确认容器运行正常: docker-compose ps。3. 查看日志: docker-compose logs emby。 |
| 媒体库扫描不到文件 | 1. 检查卷映射:确认宿主机媒体目录(如 /mnt/10t/videos)存在且有媒体文件。2. 检查容器内路径:在添加媒体库时,务必使用容器内路径(如 /media)。3. 检查权限:容器内进程(根据 UID/GID)需要对宿主机挂载的目录有读取权限。 |
| 硬件加速不工作或转码失败 | 1. 确认 devices 配置正确,且宿主机 /dev/dri 设备存在。2. 在 Emby 转码设置中正确选择硬件加速类型。 3. 查看 Emby 服务器日志获取具体错误信息。 |
| 元数据(海报、简介)刮削失败 | 1. 检查网络连接,特别是 DNS 设置。可尝试在容器内修改 hosts 文件,将元数据网站(如 api.themoviedb.org)解析到可用 IP。2. 在媒体库设置中尝试更换元数据下载器。 |
希望这份教程能帮助你顺利完成 Emby 的部署,享受打造私人影音世界的乐趣!