PVE-LXC-docker 安装Emby/Plex前期准备

Docker11个月前更新 ydddj
27 0

PVE-LXC-Docker 部署完成,nfs客户端安装

apt-get install nfs-common

一.挂载NFS

1.编写 systemd nfs 挂载单元

vi /etc/systemd/system/mnt-media.mount
[Unit]
Description=Mount Media
After=network-online.target
[Mount]
What=10.10.10.251:/volume2/media
Where=/mnt/media
Type=nfs4
Options=_netdev,auto
[Install]
WantedBy=multi-user.target
vi /etc/systemd/system/mnt-video.mount
[Unit]
Description=Mount Video
After=network-online.target
[Mount]
What=10.10.10.250:/volume1/video
Where=/mnt/video
Type=nfs4
Options=_netdev,auto
[Install]
WantedBy=multi-user.target
vi /etc/systemd/system/mnt-docker.mount
[Unit]
Description=Mount Docker
After=network-online.target
[Mount]
What=10.10.10.251:/volume1/docker-pve
Where=/mnt/docker
Type=nfs4
Options=_netdev,auto
[Install]
WantedBy=multi-user.target

2.重新加载 systemd 单元

systemctl daemon-reload
systemctl enable mnt-media.mount
systemctl enable mnt-video.mount
systemctl enable mnt-docker.mount

3.更改 docker 启动依赖

vi /lib/systemd/system/docker.service
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service containerd.service mnt-media.mount mnt-video.mount mnt-docker.mount
Wants=network-online.target containerd.service
Requires=docker.socket
RequiresMountsFor=/mnt/media /mnt/video /mnt/docker
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target mnt-media.mount mnt-video.mount
Wants=docker-storage-setup.service
Requires=docker-cleanup.timer
RequiresMountsFor=/mnt/media /mnt/video
sudo chmod 777 /mnt/video
sudo chmod 777 /mnt/media
sudo chmod 777 /mnt/docker

4.我们将设置一个系统启动 2 分钟后启动并在此之后每隔 15 分钟定期执行的定时任务。下面是所需的定时器单元 dockerrun.timer和服务单元dockerrun.service,系统启动后 2 分钟检查docker,每15分钟检查一次

vi /lib/systemd/system/dockerrun.timer
[Unit]
Description=Run every 15min and on boot
[Timer]
OnBootSec=2min
OnUnitActiveSec=15min
[Install]
WantedBy=timers.target
vi /lib/systemd/system/dockerrun.service
[Unit]
Description=Docker Run
[Service]
ExecStart=/usr/bin/docker

在 .timer 中 OnBootSec= 设置了该定时器需要在系统启动 2 分钟后被执行,OnUnitActiveSec= 设置了该定时器在成功执行后,每隔 15 分钟需要再次被执行。服务单元dockerrun.service 中 [Service] 定义了 systemctl start docker.service是需要被执行的应用。

systemctl start dockerrun.timer
systemctl enable dockerrun.timer
sync
reboot

命令 systemctl list-timers 可以列出目前激活的定时任务。

二.编辑配置文件,配置容器环境

1、查询Intel核显代码

在PVE的shell界面(不是CT模板的shell界面),输入下列命令

ls -l /dev/dri

2、编辑配置文件

注意还是在PVE的shell界面,下面的CTID就是创建的CT模板的ID。输入下列命令

nano /etc/pve/lxc/CTID.conf

配置文件编辑界面

3、添加核显代码,填写下列参数并保存

前三行配置文件需要修改,加粗的地方是需要填入刚才查询的核显代码的地方。最后保存(保存方法:按住 ctrl+x 然后按 y 然后按回车)

lxc.cgroup2.devices.allow: c 226:0 rwm

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

lxc.cgroup2.devices.allow: c 29:0 rwm

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

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

lxc.apparmor.profile: unconfined

登陆界面

4、验证核显是否启用成功

选中刚才创建的模板,点击启动,并登陆。账号名:root 密码是设置CT模板的密码。

输入下列命令

ls -l /dev/dri

启用成功

5、更新系统

输入下列命令,更新并安装系统组件

apt update && apt upgrade -y

使用apt update && apt install intel-media-va-driver-non-free vainfo

接下来使用export LIBVA_DRIVER_NAME=iHD,否则vainfo会报错,想重启之后也有效,需要添加到/etc/profile

使用vainfo查看是否正常,就像这样

PVE-LXC-docker 安装Emby/Plex前期准备

更改核显权限

输入下列命令

/bin/chgrp video /dev/dri

/bin/chmod 755 /dev/dri

/bin/chmod 660 /dev/dri/*

© 版权声明

相关文章