OpenWrt使用Docker搭建Emby媒体服务器入门指南

OpenWrt 作为一款嵌入式 Linux 系统,应用软件的范围自然无法与完整的桌面级系统相比,但是可以借助强大的容器引擎 Docker,极大的扩展各类附加应用功能,使得曾经的不可能变为可能!

接下来以 OpenWrt-Life 成品固件为例,讲解如何在 OpenWrt 上通过界面使用 Docker。

准备工作

  1. 需要一台配备了 Intel CPU 的软路由(最好附带核心显卡)。
  2. 安装好 OpenWrt-Life 成品固件。
  3. 挂载足够用的存储设备(ext4格式)。如果不知道怎么格式化,请参阅:https://iyzm.net/openwrt/72.html
  4. 保持正常联网。

OpenWrt 安装 Docker

登录路由器管理界面,打开“系统”-“软件包”,先点击“更新列表…”按钮,然后在过滤器输入框输入:luci-i18n-dockerman-zh-cn 检索中文界面软件包,接着点击安装按钮即可,等待软件安装完毕。

安装完毕后,刷新网页,即可看到新增的一级菜单“Docker”

  • 注意:安装完毕后,请重启一次路由器系统,因为这个软件依赖的某些内核模块需要重启才能生效。

配置 Docker

首先打开 “Docker”-“概览”,确认设置 “Docker 根目录” 是否需要调整,如果确认没问题,再勾选启用,然后点击“保存并应用”按钮以启动 Docker 。

本例中以部署 Emby 多媒体服务器为例,演示 OpenWrt 下常用的 Docker 配置方式,

打开 Emby 的 Docker 介绍页面:https://hub.docker.com/r/emby/embyserver 找到安装描述。

拉取镜像

可以看到 Docker 拉取命令显示为:docker pull emby/embyserver:latest

打开 OpenWrt 的 Docker 镜像管理界面,输入 emby/embyserver:latest 拉取镜像。

在 Docker 镜像管理界面输入要拉取的镜像名称。

等待镜像拉取完毕。

镜像文件下载完毕。

创建容器

打开 OpenWrt 的 Docker 容器界面,点击添加按钮,配置所需的容器参数。

按需修改各类容器参数,你可以把容器理解为一个虚拟机 Linux 系统,它有自己独立的各类系统目录,要想让容器能读写 OpenWrt 中的目录,就需要使用“绑定挂载”选项,将 OpenWrt 中的目录映射至容器内部的目录。

“绑定挂载”选项的书写格式例如:

/mnt/sda3/emby/config:/config
#表示将 OpenWrt 中的 /mnt/sda3/emby/config 映射至容器内的 /config

/mnt/sdb/video:/mnt/video
#表示将 OpenWrt 中的媒体文件目录 /mnt/sdb/video 映射至容器内的 /mnt/video
注意:使用英文冒号分隔两个路径。


本例中使用的容器为 Emby 多媒体服务器,可将 Intel 核心显卡分配给其使用,以提升视频转码效率。
在“高级选项”-“设备”选项处,输入:/dev/dri:/dev/dri

注意:无需手动创建目录,如果目录不存在,则程序会自动创建,你只需确认相关路径挂载点剩余空间是否充足,格式是否为 ext4

启动容器

直接在容器管理界面,勾选已经配置完毕的容器,点击启动按钮即可。

配置 Emby 多媒体服务器

经过以上步骤,Emby 服务器已成功运行,接下来配置 Emby 服务器即可,
根据上面的配置参数,Emby 的配置文件实际将存放在 /mnt/sda3/emby/config
Emby 的媒体目录实际在 /mnt/sdb/video ,意思就是你只需要将视频文件等放入 /mnt/sdb/video 即可被 Emby 识别。

由 Emby 的 Docker 介绍页面显示的信息可知,Emby 默认使用 8096端口(HTTP)和 8920端口(HTTPS)
因为是初次使用,HTTPS 端口肯定不能用,因为 HTTPS 需要配置 SSL 证书后才能启用,
所以直接访问 HTTP 端口 8096 即可,浏览器打开例如:http://192.168.9.1:8096

注意:经过了上一步后,你可以关闭浏览器,重新打开就能显示中文界面了。

设置媒体库文件夹。

选择之前在 Docker 容器中配置的目录即可。

其它参数请自行按需配置,一路下一步直到完成。

配置完毕后,登录账号即可看到媒体库已扫描出的视频文件,本例中仅放置了一个视频文件用于测试。

补充说明

看了 Emby 的 Docker 介绍页面会发现还有另外一种网络配置,这种网络配置用于将容器接入 Docker 的虚拟子网中,以此与宿主机(OpenWrt)的局域网隔离开来,然后通过将 OpenWrt 的端口绑定至容器内部的端口,以进行有限的端口开放。

总结

经过本实例的操作与学习,你完全可以做到一通百通,各种 Docker 应用的配置一般大同小异,如果你要把 Docker 作为日常使用,建议使用 x86 软路由,最好使用带核心显卡的 Intel CPU,如果没有显卡,例如 Emby 这类多媒体应用日常使用中几乎会导致CPU 满载,使得日常使用体验极差,RAM 建议配置 4G 以上。

Docker 的容器界面你可以理解为虚拟机控制界面,可以随意创建和删除,可以使用同一个镜像创建多个容器,也就是可以做到一个程序多开使用。

当然 Docker 与真正的虚拟机还是不同的,Docker 属于轻量化的应用,性能方面比虚拟机要好一点,具体技术信息请前往 Docker 官网了解。

关联应用

当你的路由器没有公网 IP 时,想从外面访问路由器上的服务,可以考虑使用内网穿透软件。

N2N虚拟局域网:https://iyzm.net/openwrt/213.html

Frp多功能内网穿透:https://iyzm.net/openwrt/228.html