Docker安装Plex过程

发布于 2021-11-24  3092 次阅读


原文地址

安装docker WEB Gui——Portainer

其实威联通的 Container Station 也是 docker 的管理界面,已经做的不错了,但是唯独安装好容器后不好修改之前配置的文件夹等参数,如果只用 ssh 敲命令的方式也可以解决,不过还是建议安装上 Portainer 图形界面来统一管理 dokcer,出现问题调试也比较方便,安装命令如下。

docker run -d -p 9000:9000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--name prtainer-test \
docker.io/portainer/portainer

protainer 开始会有 admin 页面,提示创建密码,然后选择 Local,如果有集成管理需求,就选择 Remote。

pic_005.png

主界面可以看到基本是全英文的,一开始可能都会觉得有点头大,但是实际只要记得图中几个中文标注的菜单就够了,用的最多的也是 Containers 界面。

pic_006.png

点进去可以看到正在运行的容器,和威联通系统内的容器数量是一模一样的,主要是之后要在这个页面对容器进行编辑会很方便。

docker 安装 Plex

https://hub.docker.com/r/plexinc/pms-docker/

TZ 可以写 Europe/London,但是和我们的时区不一样,可以点进它的网址去查看本地的时区,Asia/Shanghai

pic_011.png

PLEX_CLAIM 按照它的链接跳转到页面,登录自己注册的账号密码就可以获得 CLAIM 的值了,复制刚才的命令,填写到刚才的命令行里面。

https://www.plex.tv/claim/

关键,不填或者超过此验证码4分钟部署完成将导致检测不到为server

最终命令如下:

docker run \
-d \
-e PUID=0 \
-e PGID=0 \
--device /dev/dri:/dev/dri \
--name plex \
--network=host \
-e TZ="Aisa/Shanghai" \
-e PLEX_CLAIM="claim-f58KFmAFkk4dfcTtRdx-" \
-v /root/plex/media/plex/config:/config \
-v /root/plex/media/plex/transcode:/transcode \
-v /root/plex/media:/data \
plexinc/pms-docker

另外,我自己设置的是静态卷三个分区,分别是 CACHEDEV1_DATA, CACHEDEV2_DATA, CACHEDEV3_DATA,实际我测试删掉 CACHEDEV3_DATA,直接 share 后面接我 NAS 里的文件夹也是看的到的,所以还是以上面的命令行的路径为主。接下来,可以到 ssh 里输入命令创建,或者是直接用威联通的 ContainerStation 创建都可以,只要了解了文件夹,端口,环境变量,在任何 NAS 系统都可以很方便的部署。
pic_014.png

另附上Ubuntu挂载ufs共享文件夹命令

mount -t nfs -o rw 192.168.6.6:/export/下载 /root/plex/media

那么最关键的问题来了,核显怎么调用还没有说,首先确定自己的 NAS 的 CPU 是支持硬解的。

ls /dev/dri

输入命令后看到 card0 renderD128 就是支持核显。

pic_015.png

chmod a+x /dev/dri

输入命令后是让 dri 文件夹下都有可执行权限,这个命令有的人没输入也能成功,建议输入,而且 docker 一直遇到问题可以尝试在 admin 账号下进行操作,权限更大。

pic_016.png

这个核显驱动文件夹其实在 docker 创建时就可以输入,只是我习惯一步步排除问题,先建好容器后再加入也是可以成功的,这个时候就靠 portainer 登场了,点击 Containers 文件夹,点击容器名称,这里我换了 linuxserver 的镜像又安装了一次,应该说每个镜像我都删除更换了许多次来摸索,原理都是一样的。

pic_017.png

进入容器后,点击右上角的 Duplicate/Edit,进行编辑,Portainer 有个好处是不用停止容器也可以直接编辑,再发布直接覆盖就好了,节省步骤。

pic_018.png

进入编辑页面后往下拉,可以看到一排页面标签,比如 Volumes 就是文件夹映射,我有时候直接创建一个空的容器,在 Portainer 这里手动填写路径,感觉灵活度非常高,比如未来又有新的媒体文件夹里就在这里添加,注意右侧要选择 Bind 才能输入自定义路径。

pic_019.png

此处是设置容器

pic_020.png

点击 Runtime & Resouces 标签页面,此处就是调用核显的关键,在下方点击 add device,手动填写核显文件夹的路径 /dev/dri,下方还可以对这个容器占用系统性能设置区间,一般默认即可,再点击上方的 Deploy the container 按钮就可以覆盖启动容器了。

pic_021.png

接下来输入 IP:32400 访问 PLEX 媒体库,按照步骤一直下一步。

pic_022.png
pic_023.png
pic_024.png

成功到启动页面后点击右上角的工具按钮来到控制面板。

pic_025.png

远程访问这里有一个感叹号,需要勾选后点击启用。

pic_026.png
pic_027.png

同时我还在路由器的端口转发规则转发了 32400 的端口号,也没有和 PLEX 页面的设置冲突,目前都能正常外网访问。

pic_028.png

PLEX 不能调用本地刮削好的 NFO 文件,所以我也加上了补丁,分别是电影和电视节目的刮削器,注意文件命名后缀要改为 bundle 和图中一致。docker 版补丁的路径放在 Container/pelx/config/Library/Application Support/Plex Media Server/Plug-ins文件夹下,然后重启 PLEX。

pic_029.png

回到 PLEX 界面点击资料库。

pic_030.png

右上角添加资料库。

pic_031.png

选择电影,语言改为中文。

pic_032.png

选择文件夹为电影媒体文件夹。

pic_033.png

高级里面的代理实际就是刮削器,选择 XBMCnfoMoviesImporter 就可以加载本地已经整理好的 NFO 文件。

pic_034.png

注意这个 Enable generating Collections from tags 的勾要去掉,不然会生成很多 tag 标签导致媒体库很乱。

pic_035.png

如果有系列电影比如「钢铁侠」想生成一个系列文件夹预览的,可以选择 Hide items which are in collections,然后添加资料库。

pic_036.png

等待一段时间,电影完全整理好了。

pic_037.png

使用硬件转码的话要在转码器部分选择下方的两个调用硬件转码的选项,PLEX 的汉化版本一直做的一般,这里都是英文,有的是中文。而且 PLEX 的转码是需要会员的,我是 220 元买的一个终身版,目前还没有被黑。不像 Emby 和 Jellyfin 那样选择硬件转码后能看到许多转码选项,到这一步都不确定是否真的装好了 docker 的核显调用。

pic_038.png

必须打开一个电影,手动将播放质量选到很低,来测试能否核显硬解,如图看到(hw)这个标识就是成功启用硬解了。

pic_039.png

再就是回到威联通过的资源监控页面,看一下 CPU 的占比,如果一直比较低的话,那绝对没有问题了,如图 Container Station 的资源占比也很低,这也是我喜欢装 docker 的原因。

pic_040.png

如果有人到这一步发现核显依然无效,媒体播放还是软件解码该怎么办,最后的罪魁祸首可能就在此处了,依然回到 Portainer 对容器进行编辑,linuxsever 的镜像的 Env 环境变量内有 PUID 和 GUID 两个变量,没有的话手动添加,改为 0 即可。

pic_041.png

为什么改成 0,可以 ssh 命令下输入id admin 就发现 uid 和 gid 都是 0,也就是 admin 账户的权限,如果自己建立了新的账号,也可以用 id 用户名的方式检查自己的 uid 和 gid,填写进去,不过可能还是没用,所以其他的 docker 如果有填写 uid、gid 的需求,省心的话就全部填 0 就可以了。注意这个 uid 和 gid 在别的 docker 可能叫法不一样,老办法点进 dockerhub 页面查看文档,或者先自动建立一个镜像看环境变量里有没有自动生成,再去手动修改值。

pic_042.png

重启 PLEX,大概率核显硬解问题就全部解决了。


或许明日太阳西下倦鸟已归时