群晖配置Docker版Emby心得

黑群晖6.21,蜗牛星际J1900
主要是硬件解码踩坑
目录配置
新建共享文件夹docker,在docker文件夹中新建emby文件夹,emby文件夹下新建cofig文件夹。

步骤1:套件中心下载安装Docker。

这一步没什么好说的,点一下就行。在所有套件-第三方中。

步骤2:添加Docker加速镜像。

关于群晖Docker无法搜索,好像网上说的是添加Docker加速镜像,但是好像没啥用,暂且标记。
首先用ssh工具链接群晖,然后输入命令:

sudo vim /var/packages/Docker/etc/dockerd.json
添加如下内容并保存:

{ "registry-mirrors": ["https://registry.docker-cn.com"] }
可以在网上找到更多的镜像地址,如果这个不好用可以换一个再试试。我用的是阿里云的镜像,可以到https://cr.console.aliyun.com/获得自己专属的加速镜像地址。

然后重启Docker服务:

sudo synoservice --restart pkgctl-Docker
重启服务后,可以输入

sudo docker info
确认Registry Mirrors栏是否有刚刚添加的镜像。

步骤3:拉取Emby镜像。

输入命令:

sudo docker pull emby/embyserver:latest
上面是官方版,当然也可以用lovechen和zhshuo为开心版本的开心版
sudo docker pull lovechen/embyserver:latest

等待进度条跑完。如果速度太慢,可以回到步骤2换一个加速镜像。

步骤4:确认硬解驱动,更改权限。

Emby是通过访问/dev/dri/renderD128确认是否可以硬件解码的,在设置容器之前,我们需要确认该文件是否存在。

输入

sudo ls -la /dev/dri/
检查输出是否存在renderD128项:
total 0 drwxr-xr-x 2 root root 80 Sep 30 21:24 . drwxr-xr-x 14 root root 18920 Sep 30 21:25 .. crw------- 1 root root 226, 0 Sep 30 21:24 card0 crw-rw-rw- 1 root root 226, 128 Sep 30 21:24 renderD128

如果该文件不存在,说明你的系统并不支持硬件解码,建议更换一个支持硬件解码的群晖系统,如DS918+,否则不能进行硬件解码。如果你不需要硬件解码,可以跳过本步骤接着向下进行。

然后更改renderD128的文件权限为666,/dev/dri文件夹权限为755:

sudo chmod 666 /dev/dri/renderD128 sudo chmod 755 /dev/dri

步骤5:创建Emby容器

输入命令:

docker create \ ##创建一个容器 --name=emby \ ##容器名字为emby --device /dev/dri:/dev/dri \ ##调用核显 emby/embyserver:latest ##使用镜像创建

上面命令emby/embyserver修改成你需要的版本

当然,因为dns污染的原因,有些教程也在创建加入api解析:
docker run \ --name=embyserver \ --device=/dev/dri:/dev/dri \ #开启硬件解码,根据自身设备性能情况添加此行命令 --add-host=api.themoviedb.org:52.84.18.87 \ --add-host=image.tmdb.org:84.17.46.53 \ --add-host=www.themoviedb.org:52.84.125.129 \ emby/embyserver:latest

这时回到DSM,可以在Docker-容器里看到刚才我们创建的容器。

选中容器,点击编辑-卷,添加你想挂载到Emby上的文件夹:
这里建议挂载一个文件夹到/config,可以方便的保存你的设置。日后重装Emby时,可以挂载同一个文件夹到/config,自动恢复之前的设置。
继续添加你存入影片资源的文件夹,装载路径可以按video_1、video_2这种类型开区分。如果有多个存放影片的文件夹,就继续添加,以此类推。

点击端口设置,仅保留8096/tcp端口

点击环境。这里主要配置UID,GID和GIDLIST三项
UID和GID可以这样获取:在ssh中输入命令:
id admin
输出中,uid后面的数字填到UID项中,(administrator)前面的数字填到GID中,填到GID中的数字和0(两者用逗号隔开)填到GIDLIST中。

其中,UID和GID是控制文件访问的,设置不正确可能导致Emby不能访问挂载的文件夹。如果这样设置之后不能访问挂载的文件夹,可以在DSM中相应的文件夹处检查administrator组是否有访问该文件夹的权限(默认是有可读写权限的)。

设置完所有项目后点击应用,保存设置。

步骤6:运行容器

进入Docker-容器,点击右边的小开关,容器即可开始运行。

访问NAS的8096端口,即可进入emby。初始设置很简单,网上的资料很全,这里不再赘述。

初始设定完成后,可以进入设置-转码,可用时启动硬件转码下拉框中选择高级,即可看到可用的硬件解码器和编码器:

如果有一个有效的Emby Premiere订阅的话,即可使用硬件转码。

正文到此结束。from zhihu etnAtker部分增减编辑。

题外话,关于创建容器的网络设置,默认是桥接(bridge),但是有些教程说最好用Docker Host方式,对刮削污染有帮助或者是方便修改系统etc/hosts文件(需ssh登录群晖),host和bridge的区别如下:

host:连接到host网络的容器共享Docker host的网络栈,容器的网络配置与host完全一样。
可以通过-network-host 指定使用host网络,让容器可以直接配置host网路,比如某些跨host的网络解决方案

bridge:可以把它们想象成由一根虚拟网线连接起来的一对网卡, 网卡的一头(eth0@if34) 在容器中,另一头(veth28c57df) 挂在网桥docker0 上,其效果就是将eth0@if34 也挂在了docker0上。

就如我简单的理解为:hosts——直连,走系统的hosts文件;bridge——桥接,不走系统hosts文件。

大致解决刮削问题的方法即:
1、采用host网络创建容器,修改主机(群晖)host文件;
2、采用bridge网络,新建容器命令时,加入解析相关条目(如:--add-host=www.themoviedb.org:52.84.125.129 \);

但是,测试好像没什么鸟用。

三岩

中年油腻大叔

发表留言

人生在世,错别字在所难免,无需纠正。