Skip to content

🚀 使用 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)等。 * 多用户与权限控制:您可以创建多个用户账号,并为不同用户设置不同的媒体库访问权限,轻松实现家庭共享或朋友分享,同时保护隐私内容。

⚙️ 部署前准备

  1. 环境要求

    • 已安装 DockerDocker Compose
    • 系统内存:建议 2GB 以上,若需处理多路转码则要求更高。
    • 磁盘空间:确保有足够空间存储媒体文件及 Emby 的配置、元数据缓存。
  2. 环境检查 在终端中执行以下命令,确认 Docker 环境正常: bash docker --version docker-compose --version

  3. 创建项目目录 建议创建一个独立的目录来管理所有部署文件。 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/embyserverlinuxserver/emby
devices /dev/dri 的映射对于硬件加速至关重要。请确保宿主机存在该设备,并可考虑添加 --device /dev/dri 参数。
volumes /config 的映射用于持久化 Emby 的所有配置和元数据,务必确保目录正确。/media 映射了你的媒体库。
ports "5006:8096" 将容器内的 8096 端口映射到主机的 5006 端口。你可按需修改主机端口,容器端口一般不变。
environment TZ 设置正确时区很重要。UIDGID 设置为 0 (root) 可能简化权限问题,但出于安全考虑,最佳实践是使用非特权用户。
networks 使用外部网络并指定静态 IP,便于容器间通信。

注意:关于镜像选择,请知晓你使用的 amilys/embyserver:latest 并非官方镜像。若追求稳定性和官方支持,可考虑改用 emby/embyserver:latestlinuxserver/emby:latest

🚀 启动与验证

  1. 启动服务docker-compose.yml 文件所在目录执行: bash docker-compose up -d 此命令会拉取镜像并在后台启动容器。

  2. 检查服务状态 bash docker-compose ps 如果看到 emby 容器的状态为 Up,说明服务已成功启动。

  3. 查看实时日志(可选) 如果遇到问题,可以通过以下命令查看容器日志来排查: bash docker-compose logs -f emby

  4. 访问 Web 界面 打开浏览器,访问 http://你的服务器IP:5006

    • 如果一切正常,你将看到 Emby 的初始化界面。

⚙️ 基础配置与使用

  1. 初始化设置

    • 语言选择:在欢迎页面选择 "简体中文"
    • 创建管理员账户:设置你的用户名和密码(例如配置中提示的 admin / Clxr20)。
    • 添加媒体库:这是核心步骤。
      • 点击"添加媒体库",选择内容类型(电影、电视节目等)。
      • 在"文件夹"选项中,点击"添加文件夹",此处应填写容器内的媒体文件夹路径。根据你的配置,例如 /media请务必使用容器内路径,而非宿主机路径
      • 建议为电影、电视剧、音乐等不同类型的内容分别创建媒体库,并选择对应的元数据语言(如"中文")。
  2. 配置硬件加速(提升性能关键)

    • 进入 Emby 管理后台 "控制台" -> "转码"
    • "硬件加速" 下拉菜单中,根据你的显卡选择(如 Intel Quick Sync 对应 VAAPIIntel QuickSync)。
    • 开启 "硬件解码""硬件编码"
    • "转码临时路径" 可保持默认或设置为 /config/transcodes(确保有足够空间和权限)。
  3. 设置远程访问(可选)

    • 如果你有公网 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 的部署,享受打造私人影音世界的乐趣!