PVE 6.2 CT容器(LXC)安装Docker 并开启emby视频硬件加速

2020-11-10 21:19:46 32点赞 262收藏 38评论

更新(2020-11-19 21:22:26):
注意docker安装emby部分不知道为啥复制粘贴上去以后就变了。可以按照这个来: docker run -d --name emby --restart=always --volume /usr/docker/emby:/config --volume /mnt/nfs/movies:/movies --net=host --device /dev/dri:/dev/dri --publish 8096:8096 --publish 8920:8920 --env UID=0 --env GID=0 --env GIDLIST=0 emby/embyserver:latest

【写作说明】:

写下这篇文章是为了更好的记录自己折腾的过程。顺便分享给大家一些思路。

【目的】:

  • 1.在CT容器(LXC容器)内安装docker

  • 2.LXC容器内实现NFS挂载NAS目录

  • 3.LXC容器共享主机显卡驱动,实现硬件解码。


一、LXC容器的安装

PVE 6.2 CT容器(LXC)安装Docker 并开启emby视频硬件加速

PVE 6.2 CT容器(LXC)安装Docker 并开启emby视频硬件加速 注意以下几点:

  • 1.勾选特权容器

  • 2.创建完不要启动,选项-签名:勾选NFS,CIFS,嵌套(为了后续安装docker)!

二、PVE宿主机下的相关配置


PVE 6.2 CT容器(LXC)安装Docker 并开启emby视频硬件加速

##以下在PVE shell内执行:

#查看驱动 ls -l /dev/dri/

root@pve:~# ls -l /dev/dri/

total 0

drwxr-xr-x 2 root root 80 11月 10 18:27 by-path

crw-rw---- 1 root video 226, 0 11月 10 18:27 card0

crw-rw---- 1 root render 226, 128 11月 10 18:27 renderD128

#从上面需要获取的参数为

video id: 226, 0

render id:226, 128

##关闭CT,记好对应的ID,比如101。

#修改CT文件

nano /etc/pve/lxc/101.conf

将以下内容添加到文件末尾;(将对应的ID替换成自己的)

lxc.cgroup.devices.allow: c 226:128 rwm

lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file

到这里,PVE下的设置就完成了。

三、CT容器下的相关配置

PVE 6.2 CT容器(LXC)安装Docker 并开启emby视频硬件加速

##以下在LXC内执行:

#查看驱动 ls /dev/dri,可以看到共享的显卡驱动renderD128

root@test:~# ls /dev/dri

renderD128

#安装vainfo,验证VA-API( Video Acceleration API即视频加速API)

apt install vainfo

耐心等待安装完,中途可能需要输入Y。

#输入vainfo即可查看是否成功。

PVE 6.2 CT容器(LXC)安装Docker 并开启emby视频硬件加速

root@test:~# vainfo

error: can't connect to X server!

libva info: VA-API version 1.7.0

libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so

libva info: Found init function __vaDriverInit_1_7

libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed

libva info: va_openDriver() returns 1

libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so

libva info: Found init function __vaDriverInit_1_6

libva info: va_openDriver() returns 0

vainfo: VA-API version: 1.7 (libva 2.6.0)

vainfo: Driver version: Intel i965 driver for Intel(R) CherryView - 2.4.0

vainfo: Supported profile and entrypoints

VAProfileMPEG2Simple : VAEntrypointVLD

VAProfileMPEG2Simple : VAEntrypointEncSlice

VAProfileMPEG2Main : VAEntrypointVLD

VAProfileMPEG2Main : VAEntrypointEncSlice

VAProfileH264ConstrainedBaseline: VAEntrypointVLD

VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice

VAProfileH264Main : VAEntrypointVLD

VAProfileH264Main : VAEntrypointEncSlice

VAProfileH264High : VAEntrypointVLD

VAProfileH264High : VAEntrypointEncSlice

VAProfileH264MultiviewHigh : VAEntrypointVLD

VAProfileH264MultiviewHigh : VAEntrypointEncSlice

VAProfileH264StereoHigh : VAEntrypointVLD

VAProfileH264StereoHigh : VAEntrypointEncSlice

VAProfileVC1Simple : VAEntrypointVLD

VAProfileVC1Main : VAEntrypointVLD

VAProfileVC1Advanced : VAEntrypointVLD

VAProfileNone : VAEntrypointVideoProc

VAProfileJPEGBaseline : VAEntrypointVLD

VAProfileJPEGBaseline : VAEntrypointEncPicture

VAProfileVP8Version0_3 : VAEntrypointVLD

VAProfileVP8Version0_3 : VAEntrypointEncSlice

VAProfileHEVCMain : VAEntrypointVLD

四、挂载NFS目录

##以下在LXC内执行:

#安装NFS客户端,方便挂载群晖NFS

apt-get install nfs-common

#查看可挂载的NFS目录

showmount -e 192.168.2.5

#挂载NFS 192.168.2.5:/volume2/Disk02/movies是NAS目录;/mnt/nfs/movies是CT容器的目录

mount -t nfs 192.168.2.5:/volume2/Disk02/movies /mnt/nfs/movies

五、docker emby,并开启硬件加速

##以下在LXC内执行:

#安装emby

docker run -d

--name=emby

--volume /usr/docker/emby:/config

--volume /mnt/nfs/movies:/movies

--restart=always

--device /dev/dri:/dev/dri

--publish 8096:8096

--publish 8920:8920

--env UID=0

--env GID=0

--env GIDLIST=0

emby/embyserver:latest

注意对应目录。

然后是那啥,不方便说,参考https://neko.re/archives/128.html

参考Docker替换安装部分即可,有能力的值友请支持正版。

【结语】

以上就是所有步骤了,会对这个感兴趣的一般已经有一些基础。所以很多地方没有面面俱到。

这次折腾的坑点在于:PVE 6.2 CT容器(LXC)安装Docker 并开启emby视频硬件加速

  • 1.不开启特权模式的CT无法NFS挂载。想要最简单的配置NFS挂载,推荐使用特权模式。

  • 2.LXC共享宿主机显卡驱动的方法是在国外论坛找到的。之前看了koolshare的那个方法,测试了一下似乎不适合我的机器,无法开机。

附上提到的两篇文章:(第二条链接论坛esseki的回帖就是我找到的方法)

最后希望大家玩机开心。PVE 6.2 CT容器(LXC)安装Docker 并开启emby视频硬件加速 有帮助到大家的话,希望可以顶一顶贴,能打赏一些碎银更好啦,哈哈哈。PVE 6.2 CT容器(LXC)安装Docker 并开启emby视频硬件加速


展开 收起
38评论

  • 精彩
  • 最新
  • pve可以直接装Linux版的emby。也能直接调用核显转码。docker都省了。

    校验提示文案

    提交
    这样对系统修改比较多。我是为了隔离宿主机和虚拟机。 [得逞] docker 还可以安装其他容器,一举两得。

    校验提示文案

    提交
    我也是这样搞的,省事。看了下也没别的依赖,不会导致环境被污染。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 这么麻烦的吗,我直接pve安装docker,挂载nfs直接在pve的页面就可以挂载了

    校验提示文案

    提交
    [抽烟] 为了隔离。宿主机弄不好就翻车了。

    校验提示文案

    提交
    请教下,容器共用宿主机内核,那宿主机翻车了容器不跟着翻吗?我的PVE下有个容器的OpenWRT旁路和容器的mediaserver(jellyfin),还有个直通网口的黑裙虚拟机,有时PVE不明原因的失联了,OpenWRT和mediaserver也跟着就失联了,但黑裙就还能正常访问使用。。。现在准备升级改造AIO,确实在纠结docker是装到宿主机上还是容器里,装虚拟机里搞套娃是万万不想采用的。。。

    校验提示文案

    提交
    收起所有回复
  • 嘿嘿,最近可以搞个pve安装甜糖的教程 [龇牙]

    校验提示文案

    提交
    我有两个微加云在跑。懒得弄。其实和其他虚拟平台是一样的。 [阴笑]

    校验提示文案

    提交
    收起所有回复
  • 这种可以吧台式机的显卡直通给它吗?然后硬解是不是很牛

    校验提示文案

    提交
    不知道你说的是哪个方面。直通独显?这些esxi pve unraid应该都可以满足你的需求。

    校验提示文案

    提交
    直通给emby,然后会不会解码很快

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • pve能不要进后台输命令,就尽量不要。
    另外pve中,让lxc虚拟机支持docker在界面上就有配置,没必要这么麻烦。

    校验提示文案

    提交
    额,你没仔细看吧。我这样是为了在CT容器里面调用显卡。docker方面我只多配置了一个嵌套方便CT使用docker。

    校验提示文案

    提交
    收起所有回复
  • 我也是这么玩的,koolshare的沙发就是我回的,不过现在我已经转白威了

    校验提示文案

    提交
    [装大款] 哈哈PVE我没装黑群,是单独装的黑群。为了稳定。

    校验提示文案

    提交
    嗯,确实我现在也放弃all in one的方案了,路由我就直接用的n1刷op做独臂,其他的就给nas了,以前都是全部pve下跑的

    校验提示文案

    提交
    收起所有回复
  • 我按照你的说明成功在特权容器下把显卡直通到LXC了,但在特权容器下启动emby docker报错,我把特权容器关掉之后能成功启动emby,但是直通似乎因为文件权限的问题没法用了。另外nfs的话可以直接在PVE进行挂在,然后通过nfs lxc.mount.entry进行挂载

    校验提示文案

    提交
    [抽烟] 你那样挂载的也可以,但是重启PVE时挂载的NFS会有一个过程,另外比较影响CT备份。

    校验提示文案

    提交
    [大囧] 挂载是个小问题。。。大佬你是怎样在特权容器下把docker跑起来的?我看emby论坛那没提到需要特权容器。。。

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 为什么还要在容器里跑docker?直接装一个Ubuntu容器,然后直接装Linux版的emby不就好了?

    校验提示文案

    提交
  • docker本来就很隔离了,我选择PVE直接安装docker

    校验提示文案

    提交
    作者这骚操作,不理解

    校验提示文案

    提交
    docker本身就是lxc分支出来的一类容器,套在一起,感觉像是捧着汤碗里面放个饭碗吃饭……

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 没会员,也能开硬解?

    校验提示文案

    提交
  • lxc显卡直通,同样是用了楼主的方法才行,koolshare的没法启动。但楼主分享的ubuntu模板我没法用

    校验提示文案

    提交
  • ct容器磁盘空间不够了,可以扩容吗

    校验提示文案

    提交
  • 问个小白问题,用了楼主的模版,但是lxc设置好启动后,要求登陆,用户名和密码是什么???

    校验提示文案

    提交
  • 大佬,挂载NFS的命令重启后需要重新输入吗?

    校验提示文案

    提交
  • 已经完美使用了,可惜iPad用不了开心版,考虑换回jellyfin 吧。

    校验提示文案

    提交
  • 请问大佬所有步骤都按教程操作的,环境pve7.23 debian11 lxc创建时勾选非特权的话,mount命令挂载不上nfs盘, 不勾选非特权的话能挂载Nfs,但是emby高级里面就没硬解选项了。 (勾选=mount挂载不上nfs,提示不允许操作。 不勾选=emby高级无硬解选项)

    校验提示文案

    提交
  • 查看驱动 ls -l /dev/dri/,就显示ls: cannot access '/dev/dri': No such file or directory。请问怎么解决这个问题

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
262
扫一下,分享更方便,购买更轻松